Materi 2 - Evolusi Bahasa Pemrograman

Evolusi Bahasa Pemrograman diantaranya adalah sebagai berikut:

Plankalkul (1945)
• Bahasa Pemrograman yang pertama kali ditemukan
• tidak pernah diimplementasikan
• Struktur bahasa terdiri dari array dan records.

Pseudocode (1949)
Pada saat itu alasan mengapa digunakan bahasa ini adalah karena sulitnya pemrograman jika harus menggunakan bahasa mesin / machine code. Bahasa ini terdiri atas 2 tipe, yaitu:

a Shortcode (1949)
Ditemukan oleh Mauchly dan digunakan pada komputer BINAC. Ekspresi dikodekan dari kiri ke kanan
b Speedcoding (1954)
• Ditemukan Backus digunakan pada komputer IBM 701
• terdiri atas Pseudo operation untuk fungsi aritmatik dan matematika
• Percabangan kondisional dan tanpa kondisi.
• Autoincrement register untuk pengaksesan array

Laning dan Zierler System (1953)
• diimplementasikan pada komputer Whilwind – MIT
• Laning dan Zierler System bahasa yang menggunakan system compiler pertama di dunia
• Punya fasilitas translasi ekspresi dan pemanggilan fungsi.
• Kelemahan : tidak pernah diporting ke mesin lain.

FORTRAN I (1957)
• FORTRAN atau yang dikenal dengan FORTRAN 0 pada tahun 1954
• FORTRAN 0 tidak diimplementasikan
• FORmula TRANslation dibuat oleh John Backus dan dirancang untuk komputer IBM 704 memiliki Index Register dan hardware floating-point.
• FORTRAN => FORTRAN I merupakan bahasa tingkat tinggi pertama yang diterima secara luas

Implementasi FORTRAN I
1. Nama variable maksimal 6 karakter.
2. Input/Output dapat diformat (diatur).
3. User dapat membuat subrutin (subprogram) sendiri.
4. Three-way selection statement (arithmetic IF statement).
5. Tidak ada statement tipe data. (semua data dianggap sama)

FORTRAN II (1958)
• Perbaikan dari FORTRAN I
• Beda FORTRAN II & FORTRAN I adalah compilationnya
• FORTRAN I compilationnya tidak terpisah, FORTRAN II compilationnya terpisah

FORTRAN IV (1962)
• Menggunakan deklarasi tipe eksplisit serta logical selection statement (Logical IF)
• Subprogram dapat menjadi parameter
• Standar ANSI pada tahun 1968

FORTRAN 77 (1978)
• Salah satu perubahan dari FORTRAN sebelumnya adalah pada FORTRAN 77 ini dilengkapi dengan character-string handling
• Logical loop control statement
• Struktur IF dirubah menjadi IF-THEN-ELSE

FORTRAN 90 (1990)
• Menggunakan modul-modul dengan akses private maupun public
• Terdapat array dinamik. record dan pointer
• Bersifat rekursif
• Terdapat statement CASE, EXIT, dan CYCLE
• Pengecekan tipe parameter

LISP (1959)
• LISt Processing dibuat oleh John McCarthy
• Berdasarkan riset Artificial Intellegence membutuhkan bahasa yang memproses data menggunakan list (bukan array) dan bahasa yang paling cocok adalah LISP
• Mendukung komputasi simbolik (bukan numerik)
• Hanya menggunakan 2 tipe data, yaitu Atom dan List. Sintaksnya didasarkan pada Kalkulus Lambda (Lambda calculus)
• Pionir dari functional programming
• Tidak membutuhkan variable atau assignment
Kontrol dilakukan lewat rekursi dan ekspresi kondisional. Masih merupakan bahasa yang dominan dalam AI. COMMON LISP dan Scheme merupakan dialek dari LISP. Terdapat bahasa-bahasa lain yang berhubungan, yaitu ML, Miranda, Haskell

ALGOL 58 (1958)
• Merupakan singkatan dari ALGOrithmic Language.
• Alasan dikembangkannya ALGOL 58:

1. FORTRAN terbatas untuk mesin IBM 70x.
2. Bahasa-bahasa yang lain juga dikembangkan tetapi hanya untuk mesin tertentu.
3. Tidak terdapat bahasa yang portable, semuanya bergantung pada mesin
4. Tidak terdapat bahasa yang universal.

• Tujuan ALGOL adalah bahasa ini mendekati notasi matematika, baik untuk mendeskripsikan algoritma, dan harus dapat ditranslasikan ke kode mesin

• Fitur dari bahasa ALGOL:
1. Menggunakan konsep tipe data secara formal.
2. Nama variable tidak terbatas panjangnya.
3. Index array tidak terbatas.
4. Parameter dipisahkan oleh modenya (in dan out).
5. Index ditempatkan dalam bracket (tanda [ ]).
6. Mendukung compound statement (pernyataan majemuk) (begin…end).
7. Tanda semicolon (titik koma, ;) merupakan pemisah antar statement.
8. Menggunakan operator assignment :=
9. Statement IF mempunyai ELSE-IF (nested-IF)

ALGOL 60 (1960)
• Merupakan modifikasi dari ALGOL 58.
• Fitur baru pada ALGOL 6 adalah:

1. Block structure (local scope).
2. 2 model passing parameter (by name dan by value).
3. Rekursi subprogram.
4. Stack-dynamic array.

• ALGOL 60 penyempurnaan dari ALGOL 58
• Belum mempunyai I/O dan string handling
• Bahasa pertama yang syntaxnya didefinisikan secara formal. (Menggunakan BNF- Backus Naur Form/ Backus Normal Form)
• Bahasa ini tidak dipakai secara luas karena dominasi FORTRAN di Amerika dan syntaxnya formal

COBOL (1960)
• Singkatan dari COmmon Business Oriented Language.
• Tujuan desain COBOL adalah:

1. Harus seperti bahasa Inggris yang sederhana
2. Mudah untuk digunakan
3. Harus dapat dipergunakan secara luas.
4. Harus terbebas dari masalah implementasi compiler

• Kontribusi terhadap perkembangan bahasa pemrograman :

1. Fasilitas makro yang pertama dalam bahasa tingkat tinggi
2. Struktur data hirarki (record)
3. Statement kondisi bersarang (nested selection statements)
4. Nama variable dapat mencapai 30 karakter
5. Pembagian data

BASIC (1964)
Beginners All-purpose Symbolic Instruction Code dibuat oleh John Kemeny dan Thomas Kurtz. Walaupun struktur program ini jelek tetapi bahasa ini tergolong mudah untuk dipelajari. Dialek dari BASIC yang sekarang populer adalah QuickBASIC dan Visual BASIC.

Pascal (1971)
• Didesain oleh Niklaus Wirth, yang keluar dari tim ALGOL 68
• Bahasa yang dikembangkan dari ALGOL 68
• Didesain untuk pengajaran pemrograman terstruktur
• Kecil dan mudah, tidak terdapat hal yang benar-benar baru
• Menjadi bahasa pemrograman yang digunakan secara luas untuk mengajarkan pemrograman di universitas-universitas.

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
• Didistribusikan bersama system operasi UNIX

Smalltalk (1972-1980)
• Dikembangkan di Xerox Palo Alto Research Center (Xerox PARC), oleh Alan Kay, kemudian dilanjutkan oleh Adele Goldberg
• 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. Merupakan pengembangkan 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. Menjadi standard ANSI pada tahun 1997.

Java (1995)
Dikembangkan oleh James Gosling, Sun Microsystems. Java didasarkan pada penyederhanakan C++. Kekurangan Java adalah bahasa ini hanya mendukung OOP. Java mempunyai reference, tetapi tidak pointer. Terdapat juga dukungan untuk applets (world wide web) dan concurrency (Java Threads).

Scripting Language untuk Web
a) JavaScript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Mempunyai syntax yang mirip dengan Java.

b) PHP (PHP Hypertext Preprocessor)
Digunakan pada Pemrograman Web (server-side). PHP menghasilkan code HTML sebagai outputnya. Mempunyai syntax yang mirip dengan C++ (support OOP).

c) VBScript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Didasarkan atas Visual Basic. Bahasa ini dikembangkan oleh Microsoft.

d) Jscript
Digunakan pada Pemrograman Web (client-side) untuk mengahasilkan dynamic HTML document. Memiliki syntac yang mirip dangan C++. Dikembangkan oleh Microsoft.

e) ASP (Active Server Page)
Digunakan pada Pemrograman Web (server-side) menghasilkan code HTML sebagai outputnya. Dikembangkan oleh Microsoft.


SWCU - black edition