LISP
LISP (LISt Processing) dispesifikasikan John McCarthy pada tahun 1950.
Mulanya LISP dimaksudkan sebagai model komputasi alternatif berdasarkan
teori fungsi/persamaan rekursif. Bahasa McCarthy berdasarkan makalahnya:
"Recursive functions of symbolic expressions and their computation by
machine"
Tujuan McCarthy adalah sebagai berikut:
- Menciptakan bahasa untuk komputasi simbolik bukan numerik.
- Implementasi model komputasi berdasarkan teori fungsi rekursif.
- Menyediakan definisi sintaks dan simantiks bahasa yang bersih.
- Mendemonstrasikan secara formal kelengkapan model komputasi ini.
Selain sebagai formalisasi matematika, LISP merupakan bahasa pemrograman yang praktis. LISP sesuai namanya LISt Processing
dirancang untuk menyediakan kemampuan manipulasi simbol untuk menangani
masalah pemrograman yang melibatkan banyak manipulasi simbolik.
Pada LISP, list adalah basis program dan struktur data. LISP menyediakan
fungsi-fungsi penanganan list yang diimplementasikan secara internal
sebagai struktur pointer berkait. Program dapat menggunakan keampuhan
dan generalitas penuh struktur berkait dengan bebas dari tangungjawab
mengelola pointer dan operasi-operasi pointer secara eksplisit.
Mulanya LISP adalah bahasa yang sangat kecil dan sederhana, yaitu:
- Fungsi untuk membentuk dan mengakses list
- Mendefinisikan fungsi baru
- Mendeteksi kesamaan
- Evaluasi ekspresi
- Kendali Program: Rekursi dan Kondisi tunggal
Selain itu, adanya penambahan pada LISP yaitu :
- Fungsi untuk penstrukturan data
- Kendali program
- Aritmatika real dan integer
- I/O
- Penyuntingan fungsi LISP
- Penelusuran eksekusi program.
LISP berkembang menjadi lingkungan yang kaya, ampuh dan praktis
untukmembangun sistem perangkat lunak besar. Pada tahun 1993, DARPA
mengusulkan standarisasi disebut Common LISP.
LISP merupakan bahasa yang memiliki fitur unik. Bahasa LISP menjadi
media yang luar biasa untuk mempelajari bentukan-bentukan pemrograman
dan struktur data serta menghubungkannya ke fitur-fitur bahasa yang
mendukungnya.
Fitur paling berarti adalah deskripsi proses di LISP yang disebut procedure dapat direpresentasikan dan dimanipulasi sebagai data.
Pentingnya hal ini adalah bahwa teknik-teknik perancangan program yang
ampuh yang bergantung pada pengaburan antara data "pasif" dan proses
"aktif".
Fleksibilitas LISP dalam menangani prosedur sebagai data membuatnya
menjadi bahasa yang cocok untuk eksplorasi teknik-teknik pengaburan.
Kemampuan merepresentasi prosedur sebagai data juga membuat LISP
merupakan bahasa luar biasa untuk menulis program yang harus
memanipulasi program lain sebagai data seperti interpreter atau
kompilator yang mendukung bahasa pemrograman.
Varian-varian LISP
- LISP asli (akhir 1950) di MIT,
# LISP 1.5 diawal 1960 sebagai standar pertama,
# MacLISP (akhir 1960) -> di MIT sebagai upgrade,
# ZetaLISP dan
# LISP Machine (akhir 1970) -> varian komersial MacLISP.
- InterLISP (awal 1970) -> varian West Coast
- SCHEME (pertengahan 1970-an) -> varian LISP utama lebih dekat ke kalkulus lambda
- Portable Standard LISP (PSL) (awal 1980-an) -> versi efesien LISP
dari Universitas Utah yang ditulis dengan LISP dan sceara mudah
ditransport ke komputer baru
- Frans LISP (awal 1980-an) -> varian lain dari MacLISP yang dioptimasi untuk dijalankan di lingkunagn AT&T
- Common LISP (awal 1980-an) -> kombinasi standar banyak varian
- MultiLISP (pertengahan 1980-an) -> SCHEME dengan dukungan parallelism secara eksplisit
- CLOS (Common LISP Object System) -> pengembangan LISP untuk mendukung sistem objek secara eksplisit.
Tidak ada komentar:
Posting Komentar