Rabu, 27 November 2013

Bahasa Pemrograman LISP


SEJARAH LISP
Lisp adalah bahasa pemrograman yang masuk dalam bahasa pemrograman fungsional yang inti programnya adalah berupa fungsi-fungsi. LISP sendiri diciptakan oleh John McCarty pada tahun 1958 ketika ia berada di Massachusets Institute Of Technology (MIT) Amerika Serikat. John McCarty menerbitkan sebuah makalah desain Communication In ACM pada tahun 1960 berjudul "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I", namun bagian ke 2 dari artikel tersebut tidak pernah diterbitkan. Dia menunjukkan bahwa dengan operator sederhana dan notasi fungsi, seseorang dapat membuat Turing-Complete untuk bahasa algoritma.
Bahasa Pengolahan Informasi adalah bahasa AI pertama, dari tahun 1955 - 1956, dan sudah termasuk banyak konsep seperti daftar pengolahan dan rekursi yang kemudian digunakan dalam lisp.
EKSPRESI SIMBOLIK DALAM LISP
Lisp merupakan bahasa ekspresi-oriented  dan berbeda dengan bahasa pemrograman yang lainnya karena tidak ada perbedaan mengenai "ekspresi" dan "pernyataan", semua kode dan data yang ditulis sebagai ekspresi. Ketika ekspresi dievaluasi, menghasilkan nilai (dalam Common Lisp, mungkin beberapa nilai), yang kemudian dapat dimasukkan ke dalam ekspresi lainnya. Setiap nilai dapat menjadi semua jenis data.
Jurnal McCarty 1958 memperkenalkan dua jenis sintaks : S-ekspresi yang mencerminkan representasi internal dari kode dan data, dan M-ekspresi (Ekspresi Meta), yang mengungkapkan fungsi S-ekspresi. M-ekspresi tidak pernah mendapat kasih karunia, dan hampir semua digunakan saat ini lisps S-ekspresi untuk memanipulasi baik kode dan data.
LIST DALAM LISP
List Lisp ditulis dengan unsur-unsurnya dipisahkan oleh spasi, dan dikelilingi oleh tanda kurung. Misalnya, (1 2 foo) adalah list yang elemen tiga atom: nilai 1, 2, dan foo . Nilai-nilai ini secara implisit diketik: masing-masing dua bilangan bulat dan Lisp spesifik tipe data disebut "simbol", dan tidak harus dideklarasikan seperti itu.
List kosong () juga dipresentasikan atom nihil spesial. Ini merupakan satu-satunya entitas dalam lisp baik atom ataupun list.
Ekspresi ditulis sebagai list menggunakan notasi prefix. Unsur utama dalam list adalah nama suatu form/bentuk, yaitu, fungsi, operator, makro, atau "operator khusus" Sisa dari daftar adalah argumen (lihat di bawah.). Misalnya, daftar mengembalikan fungsi argumen sebagai daftar, sehingga ekspresi :
('1'     list    2      'foo)
mengevaluasi untuk daftar (1 2 foo).
OPERATOR DALAM LISP
Seperti yang telah anda ketahui sebelumnya di postingan saya yang berjudul "Pemrograman Fungsional" bahwa functional programming memang berdasarkan pada operasi matematika.  
Operator aritmatika diperlakukan sama. Ekspresi
  (+ 1 2 3 4)
mengevaluasi sampai 10. Setara di bawah notasi infiks akan "1 + 2 + 3 + 4". Arithmetic operator dalam Lisp adalah variadic (atau n-ary ), mampu mengambil sejumlah argumen.
 EKSPRESI LAMBDA
Berbeda dengan Operator Khusus, lambda, digunakan untuk mengikat variabel ke nilai-nilai yang kemudian dievaluasi dalam sebuah ekspresi. Operator ini juga digunakan untuk membuat fungsi: argumen untuk lambda adalah daftar argumen, dan ekspresi atau ekspresi yang mengevaluasi fungsi (nilai yang dikembalikan adalah nilai dari ekspresi terakhir yang dievaluasi).
((Lambda (arg) (+ arg 1)) 5)
Ekspresi ini mengevaluasi ke fungsi yang apabila diterapkan akan mengambil satu argumen, mengikat ke arg dan mengembalikan nomor satu lebih besar dari argumen itu. Ekspresi Lambda diperlakukan tidak berbeda dari fungsi bernama, mereka dipanggil dengan cara yang sama.
ATOM DALAM LISP
Atom merupakan istilah untuk menggambarkan sebuah elemen atau materi yang terkecil dalam bahasa kimia/fisika. Namun, bukan hanya dalam ilmu kimia/fisika saja istilah atom itu digunakan, didalam bahasa pemrograman LISP juga digunakan.
Sebuah list terbatas untuk memerintahkan urutan elemen, di mana setiap elemen itu sendiri baik atom atau daftar, dan atom adalah jumlah atau simbol. Simbol pada dasarnya merupakan item yang bernama unik, yang ditulis sebagai alfanumerik string dalam kode sumber , dan digunakan baik sebagai nama variabel atau sebagai item data dalam pemrosesan simbolik. Misalnya, daftar (FOO (BAR 1) 2) berisi tiga elemen: FOO simbol, daftar (BAR 1), dan nomor 2.

Sumber : http://ourtechs.blogspot.com/2012/04/bahasa-pemrograman-lisp.html

Tidak ada komentar:

Posting Komentar