Perbandingan bahasa-bahasa pengaturcaraan
Bahasa-bahasa pengaturcaraan digunakan untuk mengawal tingkah laku sesebuah mesin (selalunya komputer). Sama seperti bahasa-bahasa sejadi, bahasa pengaturcaraan mempunyai sintaksis dan semantik.
Terdapat beribu-ribu bahasa pengaturcaraan dan yang baru, muncul saban tahun. Tidak banyak bahasa yang menjadi cukup popular sehingga ia digunakan lebih daripada sedikit orang, namun pengatur-pengatur cara pakar boleh dengan mudahnya mengunakan berdozen-dozen bahasa yang berlainan semasa kerjaya mereka.
Perbandingan am
Berikut addalah jadual yang membandingkan maklumat am dan teknikal bagi pilihan bahasa-bahasa pengaturcaraan yang sering digunakan.
Bahasa | Kegunaan yang dimaksudkan | Paradigma | Dipiawaikan? |
---|---|---|---|
ActionScript 3.0 | Web, pihak pelanggan | imperatif, berorientasi objek, pacuan peristiwa | Ya, ECMA |
Ada | Penggunaan, Terbina dan Masa sebenar | serentak, teragih, generik, imperatif, berorientasi objek | Ya, ANSI, ISO, GOST 27831-88 [1] |
ALGOL 58 | Penggunaan | imperatif | Tidak |
ALGOL 60 | Penggunaan | imperatif | Ya, ISO[2] |
ALGOL 68 | Penggunaan | serentak, imperatif | Ya, GOST_27974-88[3] |
APL | Penggunaan, Pemprosesan data | berorientasi tatasusunan | Ya, ISO |
Bahasa himpunan | Umum | Tidak | |
AutoIt | Amat berkhususkan domain, Pengautomatan GUI (makro) | ||
BASIC | Penggunaan, Pendidikan | berprosedur | Ya, ANSI, ISO |
BeanShell | Penggunaan, Penskripan | imperatif, berorientasi objek, kefungsian, berpantul | Dalam perkembangan, JCP[4] |
BLISS | Sistem | berprosedur | Tidak |
Boo | Penggunaan | Tidak | |
C | Sistem | imperatif | Ya, ANSI C89, ISO C90/C99 |
C++ | Penggunaan, Sistem | imperatif, berorientasi objek, generik | Ya, ISO |
C# | Penggunaan | imperatif, berorientasi objek, generik, berpantul | Ya, ECMA, ISO[5] |
Chrome | Penggunaan | imperatif, berorientasi objek, generik | Tidak |
Clean | Umum | kefungsian, generic | Tidak |
COBOL | Penggunaan, Perusahaan | imperatif, berorientasi objek | Ya |
ColdFusion | Pembangunan Web | berprosedur, berorientasi objek | Tidak |
Common Lisp | Umum | imperatif, kefungsian, berorientasi objek | Ya |
Curl | Rich Internet Applications | pacuan peristiwa, kefungsian, imperatif, berorientasi objek, generik, berpantul | Tidak |
D | Penggunaan, Sistem | imperatif, berorientasi objek, generik | Tidak |
Dylan | Penggunaan | kefungsian, berorientasi objek | Tidak |
Eiffel | Penggunaan | imperatif, berorientasi objek, generik | Ya, ECMA, ISO[6] |
Erlang | Penggunaan, Teragih dan Telekom | kefungsian, serentak, teragih | Tidak |
Factor | berorientasi tindanan | Tidak | |
FP | kefungsian | Tidak | |
F# | Penggunaan | kefungsian, berorientasi objek, imperatif, generik | Tidak |
Forth | Umum | imperatif, berorientasi tindanan | Ya, ANSI |
Fortran | Penggunaan, saintifik dan kejuruteraan | imperatif, berprosedur, berorientasi objek | Ya |
GraphTalk | logic-oriented, berorientasi objek | Tidak | |
Groovy | Penggunaan | imperatif, berorientasi objek, berorientasi aspek | Tidak |
Haskell | Penggunaan | kefungsian, generik, penilaian malas | Tidak |
Io | Penggunaan, Penskripan pacuan hos | imperatif, berorientasi objek | Tidak |
J | Pemprosesan data | berorientasi tatasusunan, tahap fungsi, tersirat | Tidak |
Java | Penggunaan | imperatif, berorientasi objek, generik, berpantul | Ya, ECMA, ISO |
JavaScript | Web, pihak pelanggan | imperatif, berorientasi objek, kefungsian, berpantul | Ya, ECMA |
Joy | research | kefungsian, berorientasi tindanan | Tidak |
Lua | Penskripan pacuan hos | berprosedur, imperatif, berpantul | Tidak |
Mathematica | Amat berkhususkan domain, Matematik | kefungsian, berprosedur | Tidak |
MATLAB M-code | Amat berkhususkan domain, Matematik | imperatif, berorientasi objek | Tidak |
Modula-2 | Penggunaan | imperatif, generik | Ya, ISO[7] |
Modula-3 | Penggunaan | imperatif, berorientasi objek, generik | Tidak |
Oberon | Umum | imperatif, berorientasi objek | Tidak |
Objective-C | Penggunaan | imperatif, berorientasi objek, berpantul | Ya |
Objective Caml | Penggunaan | berorientasi objek, kefungsian, imperatif, generik | Tidak |
Object Pascal (Delphi) | Penggunaan | imperatif, berorientasi objek, generik, pacuan peristiwa | Tidak |
Oz | Pendidikan | mantik, kefungsian, imperatif, berorientasi objek, serentak | Tidak |
Pascal | Penggunaan, Pendidikan | imperatif, berprosedur | Ya, ISO[8] |
Perl | Pemprosesan teks, Penskripan | imperatif, berprosedur, berpantul, kefungsian, berorientasi objek, generik | Tidak |
PHP | Web, pihak pelayan | imperatif, berprosedur, berorientasi objek, berpantul | Tidak |
PL/I | Penggunaan, COBOL dan Fortran original domain | imperatif, berorientasi objek | Ya |
Prolog | Penggunaan, Kecerdasan buatan | mantik | Ya, ISO |
Python | Penggunaan, tak genting kelajuan | imperatif, berorientasi objek, kefungsian, berorientasi aspek, berpantul | Tidak[9] |
REALbasic | Penggunaan | ||
RPG | Penggunaan | ||
Ruby | Penggunaan, Penskripan | imperatif, berorientasi objek, berorientasi aspek, berpantul | Tidak |
S | Penggunaan, Statistik | imperatif, berprosedur, kefungsian, berorientasi objek | Tidak |
S-Lang | Penggunaan, Penskripan, Berangka | imperatif, berprosedur | Tidak |
Scala | Penggunaan, Pendidikan | berorientasi objek, kefungsian, generik | Tidak |
Scheme | Umum, Pendidikan | ||
Smalltalk | Penggunaan, Pendidikan | berorientasi objek, serentak, pacuan peristiwa, imperatif, declarative | Ya, ANSI |
SNOBOL | Pemprosesan teks | ||
Tcl | Penggunaan, Penskripan | imperatif, berprosedur, pacuan peristiwa | Tidak |
Visual Basic | Penggunaan, Pendidikan | component-oriented, pacuan peristiwa | Tidak |
Visual Basic .NET | Penggunaan, Pendidikan | berorientasi objek, pacuan peristiwa | Tidak |
Visual Prolog | logical, berorientasi objek, kefungsian, pacuan peristiwa, imperatif, declarative | Tidak | |
Windows PowerShell | Pentadbiran | imperatif, berorientasi objek, kefungsian, pipeline, berpantul | Tidak |
XL | pengaturcaraan konsep, imperatif (secara lalai), berorientasi objek (berbilang model) | Tidak | |
Bahasa | Kegunaan yang dimaksudkan | Paradigma | Dipiawaikan? |
Lihat juga
- Senarai bahasa pengaturcaraan
- Perbandingan dari segi arahan bagi bahasa-bahasa pengaturcaraan
- Bahasa pengaturcaraan ilmiah
- Bahasa pengaturcaraan
Rujukan
- ^ http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27831-88.pdf
- ^ ISO 1538:1984
- ^ http://vak.ru/lib/exe/fetch.php/book/gost/pdf/gost-27974-88.pdf
- ^ JSR 274
- ^ ECMA-334; ISO/IEC 23270:2006
- ^ ECMA-367; ISO/IEC 25436:2006
- ^ ISO/IEC 10514-1:1996
- ^ ISO 7185
- ^ Perubahan bahasa dilakuan dengan menggunakan sebuah tatacara yang didokumentasikan secara formal, bermula dengan Usulan Penaiktarafan Python (PEP, Python Enhancement Proposal). Pembebasan-pembebasan versi Python turut disertakan dengan sebuah Panduan Rujukan Bahasa yang menunjukkan sintaks dan semantik; sebuah pelaksanaan rujukan, dan suite ujian. Semua ini digunakan untuk menjanakan pelaksanaan Python yang lain seperti Jython dan IronPython
Bacaan lanjut
- Cezzar, Ruknet. A Guide to Programming Languages: Overview and Comparison. ISBN 978-0890068120.