Evolusi Bahasa
Pemrograman
Plankalkul –1945
Tidak pernah diimplementasikan
Struktur data : Array, records
Pseudocode –1949
Digunakan karena terlalu sulit jika harus menggunakan machine code.
Shortcode – 1949 – BINAC- oleh Mauchly, Ekspresi dikodekan dari kiri ke kanan.
Speedcoding – 1954 – IBM 701 – oleh Backus. – Pseudo operation untuk fungsi aritmatik dan
matematika.
– Percabangan kondisional dan tanpa kondisi.
Laning dan Zierler System –1953
Diimplementasikan pada komputer
Whilwind – MIT.
Merupakan system compiler pertama.
Fasilitas translasi ekspresi dan
pemanggilan fungsi.
FORTRAN I – 1957
FORTRAN 0 -1954 – tidak diimplementasi
FORmula TRANslation dibuat oleh John Backus
Didesain untuk IBM 704, yang memiliki Index Register dan hardware floating-point.
Lingkungan pengembangan :
– Komputer (saat itu) belum reliable. – Aplikasi terbatas pada scientific.
– Tidak ada metodologi pemrograman dan alat bantunya. – Efisiensi mesin harus benar-benar diperhatikan.
Merupakan bahasa tingkat-tinggi pertama yang diterima secara luas.
FORTRAN I – 1957
Implementasi FORTRAN I
– Nama variable hingga 6 karakter. – Input/Output dapat diformat (diatur).
– User dapat membuat subrutin (subprogram) sendiri. – Three-way selection statement (arithmetic IF
statement).
– Tidak ada statement tipe data. – Kompilasi tidak terpisah.
FORTRAN II – 1958
Independent compilation.
FORTRAN IV – 1962
Deklarasi tipe eksplisit.
Logical selection statement (Logical IF).
Subprogram dapat menjadi parameter.
Menjadi ANSI standard pada tahun 1968
FORTRAN 77 – 1978
Dilengkapi dengan character-string
handling.
Logical loop control statement.
IF-THEN-ELSE statement
FORTRAN 90 – 1990
Menggunakan modul-modul dengan
akses private maupun public.
Terdapat array dinamik.
Record dan Pointer.
Rekursif.
Statement CASE, EXIT, dan CYCLE.
Pengecekan tipe parameter.
LISP – 1959
LISt Processing.
Dibuat oleh John McCarthy, MIT, 1959.
Riset Artificial Intellegence membutuhkan bahasa yang : – Memproses data menggunakan list (bukan array). Mendukung komputasi simbolik (bukan numeric).
Hanya terdapat 2 tipe data : Atom dan List.
Sintaksnya didasarkan pada Kalkulus Lambda (Lambda calculus). Merupakan pionir dari functional programming.
Tidak membutuhkan variable atau assignment.
Control dilakukan lewat rekursi dan ekspresi kondisional. Masih merupakan bahasa yang dominan dalam AI.
COMMON LISP dan Scheme merupakan dialek dari LISP.
ALGOL 58 – 1958
ALGOrithmic Language.
Perkembangan bahasa saat itu (saat ALGOL dibuat) : – FORTRAN terbatas untuk mesin IBM 70x.
– Bahasa-bahasa yang lain juga dikembangkan tetapi hanya untuk mesin tertentu.
– Tidak terdapat bahasa yang portable, semuanya bergantung pada mesin
– Tidak terdapat bahasa yang universal.
ACM (Association for Computing Machinery) dan GAMM bertemu bertemu selama 4 hari untuk merencanakan desain bahasa.
ALGOL 58 – 1958
Tujuan dari bahasa tersebut :
– Mendekati notasi matematika.
– Baik untuk mendeskripsikan algoritma. – Harus dapat ditranslasikan ke kode mesin. Fitur dari bahasa ALGOL
– Menggunakan konsep tipe data secara formal. – Nama variable tidak terbatas panjangnya. – Index array tidak terbatas.
– Parameter dipisahkan oleh modenya (in dan out). – Index ditempatkan dalam bracket (tanda [ ]).
– Mendukung compound statement (pernyataan majemuk) (begin…end). – Tanda semicolon (titik koma, ;) merupakan pemisah antar statement. – Menggunakan operator assignment :=
ALGOL 60 – 1960
Merupakan modifikasi dari ALGOL 58. Fitur baru :
– Block structure (local scope).
– 2 model passing parameter(by name dan by value).
– Rekursi subprogram. – Stack-dynamic array.
ALGOL 60 – 1960
Kesuksesan ALGOL 60 :
– Menjadi bahasa yang standar/formal untuk merealisasikan algoritma selama 20 tahun.
– Semua bahasa imperative sesudahnya mengacu pada ALGOL-60.
– Merupakan bahasa pertama yang tidak bergantung pada mesin (machine independent language).
Merupakan bahasa pertama yang syntaxnya didefinisikan secara formal. (Menggunakan BNF- Backus Naur Form/ Backus Normal Form).
ALGOL 60 – 1960
Kegagalan :
– Tidak dipakai secara luas di Amerika Serikat, dengan alasan :
• Tidak terdapat I/O dan character set, sehingga program tidak dapat diporting.
• Karena terlalu fleksible, menjadi susah untuk diimplementasi.
• Deskripsi syntax formal.
• Kurang dukungan dari IBM (yang saat itu merupakan perusahaan yang paling maju dalam bidang
COBOL – 1960
COmmon Business Oriented Language Perkembangan bahasa saat itu :
– UNIVAC menggunakan FLOW-MATIC. – USAF menggunakan AIMACO.
– IBM mengembangkan COMTRAN. Didasarkan pada FLOW-MATIC
– Fitur FLOW-MATIC :
• Panjang nama variable hingga 12 karakter
• Menggunakan nama dalam bahasa inggris untuk operator aritmatika.
• Data dan code terpisah.
• Kata kerja (verbs) merupakan kata pertama dalam setiap statement.
COBOL – 1960
Tujuan desain :
– Harus seperti bahasa Inggris yang sederhana. – Mudah untuk digunakan.
– Harus dapat dipergunakan secara luas.
– Harus terbebas dari masalah implementasi compiler.
Desainer terdiri dari perusahaan komputer dan DoD (U.S Departement of Defense). Kontribusi terhadap perkembangan bahasa pemrograman :
– Fasilitas makro yang pertama dalam bahasa tingkat tinggi. – Struktur data hirarki (record).
– Statement kondisi bersarang (nested selection statements). – Nama variable dapat mencapai 30 karakter.
– Pembagian data.
BASIC – 1964
Beginners All-purpose Symbolic Instruction Code.
Dibuat oleh John Kemeny dan Thomas Kurtz. Mudah untuk dipelajari.
Struktur program jelek.
Dialek dari BASIC yang sekarang populer : QuickBASIC dan Visual BASIC.
PL/I – 1965
Programming Language I.
Dibuat oleh IBM dan SHARE.
Menggabungkan fitur dari ALGOL 60, COBOL, dan FORTRAN.
Dikembangkan untuk aplikasi Bisnis dan Science.
Early Dynamic Language
Karakteristik : Memiliki tipe dinamik, dan dynamic storage allocation.
APL (A Programming Language) – 1962.
– Didesain sebagai HDL (Hardware Description Language) oleh Ken Iverson dari IBM.
– Sangat ekspresif (terdapat banyak operator). – Program sangat sulit untuk dibaca.
SNOBOL – 1964.
– Didesain sebagai string manipulation language di Bell Labs oleh Farber, Griswold, dan Polensky.
SIMULA 67 – 1967
SIMULAtion.
Didesain untuk simulasi system oleh
Nygaard dan Dahl (Norwegia).
Didasarkan pada ALGOL 60 dan SIMULA I
Kontribusi : Coroutine (semacam
subprogram) yang diimplementasi dalam
struktur yang disebut class. Class adalah
struktur yang memuat data dan fungsi.
ALGOL 68 – 1968
Merupakan pengembangan dari ALGOL 60. Desain didasarkan pada konsep orthogonality. Kontribusi :
– User-defined data structures. – Tipe referensi.
– Array dinamik (flex array).
Mempunyai pengaruh yang besar pada bahasa
pemrograman berikutnya, terutama Pascal, C, dan Ada.
Pascal –1971
Didesain oleh Niklaus Wirth, yang keluar dari tim ALGOL 68.
Dikembangkan dari ALGOL 68.
Didesain untuk pengajaran pemrograman terstruktur.
Kecil dan mudah, tidak terdapat hal yang benar-benar baru.
Tetap menjadi bahasa pemrograman yang digunakan secara luas untuk mengajarkan
C – 1972
Didesain untuk pemrograman system oleh Dennis Ritchie dari Bell Labs.
Dikembangkan dari bahasa B dan ALGOL 68. Memiliki operator yang banyak, tetapi dari segi pengecekan tipe data (type checking) kurang baik.
Bahasa lain yang merupakan
turunan dari ALGOL
Modula-2 (1970 oleh Niklaus Wirth) Pascal ditambah modul untuk low-level agar dapat digunakan untuk pemrograman sistem.
Modula-3 (1980 oleh Digital dan Olivetti) Modula-2
ditambah class, exception handling, garbage-collection, dan concurrency.
Oberon (1980 oleh Wirth) Menambahkan OOP ke
Modula-2, penghilangan statement for, tipe enumerasi dan statement with).
Delphi (1994 Borland) Pascal ditambah support untuk OOP, lebih aman (dalam hal pointer dan memori)
PROLOG – 1972
PROgramming in LOGic.
Dikembangkan oleh Comeraurer dan Roussel University of Aix-Marseille).
Didasarkan pada formal logic. Sifatnya non-procedural.
Dapat disebut sebagai Intelligent Database
System yang menggunakan proses pengambilan keputusan untuk memutuskan kebenaran dari
Ada – 1983
Dikembangkan untuk DoD.
Pengembangan melibatkan ratusan orang, biaya besar, dan waktu pengembangan sekitar 8 tahun. Memuat semua yang akhirnya dikenal sebagai bagian dalam software engineering dan language design.
Kompiler yang pertama sangat rumit, dan
kompiler yang pertama dapat digunakan dirilis 5 tahun setelah desain bahasanya selesai.
Ada – 1983
Ada 95 – Mendukung OOP melalui penurunan tipe, terdapat mekanisme kontrol yang lebih baik dalam penggunaan data secara bersama-sama, library lebih flexible.
Kontribusi :
– Packages – dukungan untuk data abstraction. – Exeception handling.
– Generic program units.
Smalltalk –1972-1980
Dikembangkan di Xerox Palo Alto Research
Center (Xerox PARC), oleh Alan Kay, kemudian dilanjutkan oleh Adele Goldberg.
Merupakan bahasa yang pertama kali
mengimplementasikan konsep object-oriented (data abstraction, inheritance, dan dynamic type binding).
Merupakan pionir dari GUI (Graphical User Interface).
C++ - 1985
Dikembangkan oleh Bjarne Stroustrup di Bell Labs. Dikembangkan dari C dan SIMULA 67.
Terdapat fasilitas OOP yang berasal dari SIMULA 67 dan ditambahkan ke C.
Mempunyai exception handling.
Merupakan bahasa yang besar dan kompleks karena mendukung procedural programming dan object-oriented programming.
Popularitasnya cepat berkembang bersama dengan OOP. ANSI standard pada tahun 1997.
Eiffel – merupakan bahasa yang juga mendukung OOP, lebih kecil dan lebih mudah dari C++, didesain oleh Bertrand Meyer tahun 1992.
Java – 1995
Dikembangkan oleh James Gosling, Sun Microsystems
Didasarkan pada C++
Secara signifikan menyederhanakan C++. Hanya mendukung OOP.
Mempunyai reference, tetapi tidak pointer.
Terdapat juga dukungan untuk applets (world wide web) dan concurrency (Java Threads).
Scripting Language untuk
Web
JavaScript
– Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. – Memepunyai syntax yang mirip dengan Java. PHP (PHP Hypertext Preprocessor)
– Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.
– Mempunyai syntax yang mirip dengan C++ (support OOP).
Scripting Language untuk
Web
VBScript
– Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
– Didasarkan atas Visual Basic. – Dikembangkan oleh Microsoft. Jscript
– Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document.
– Memiliki syntac yang mirip dangan C++. – Dikembangkan oleh Microsoft.
ASP (Active Server Page)
– Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya.
Tugas Anda
Buat paper tentang bahasa pemrograman – Java – Delphi – C++ – C# – PHP – Ruby – VB.NET – Python – Perl – ASP