Paul Graham ngumumake basa pamrograman anyar Bel

Basa Bel ditulis nganggo basa Bel.

Paul Graham ngumumake basa pamrograman anyar Bel
Ing taun 1960, John McCarthy nerangake Lisp, jinis basa pamrograman anyar. Aku ngomong "jinis anyar" amarga Lisp ora mung basa anyar, nanging cara anyar kanggo njlèntrèhaké basa.

Kanggo nemtokake Lisp, dheweke miwiti karo sawetara pernyataan cilik, sejenis aksioma, sing banjur digunakake kanggo nulis interpreter kanggo basa kasebut.

Ora ditetepake kanggo njlèntrèhaké basa pamrograman ing pangertèn biasa - basa sing digunakake kanggo ngandhani komputer apa sing kudu dilakoni. Ing taun 1960 karyane, Lisp dimangerteni minangka model komputasi formal sing padha karo Mesin Turing. McCarthy ora mikir babagan nggunakake ing komputer nganti Steve Russell, mahasiswa pascasarjana, disaranake.

Lisp ing taun 1960 ora nduweni fitur sing umum kanggo basa pemrograman. Contone, ora ana nomer, kesalahan utawa I / O. Dadi wong sing nggunakake Lisp minangka basis kanggo basa sing digunakake kanggo program komputer kudu nambah fitur kasebut dhewe. Lan dheweke nindakake iki kanthi ninggalake pendekatan aksiomatik.

Mangkono, pangembangan Lisp diterusake ing rong tahap - lan ketoke cukup independen: tahap formal, sing ditepungake ing kertas 1960, lan tahap implementasine, ing ngendi basa kasebut diadaptasi lan ditambahake kanggo mbukak ing komputer. Karya utama, yen diukur kanthi jumlah kesempatan sing ditindakake, ditindakake ing tahap implementasine. Lisp 1960 sing diterjemahake menyang Lisp Umum mung ngemot 53 baris. Iku mung apa sing perlu kanggo kokwaca ungkapan. Kabeh liyane ditambahake ing tahap implementasine.

Hipotesisku yaiku, sanajan sejarah sing angel, Lisp entuk manfaat saka kasunyatan manawa pangembangane dumadi ing rong fase; yen latihan asli kanggo nemtokake basa kanthi nulis juru basa kasebut menehi Lisp kuwalitas sing paling apik. Lan yen mangkono, kenapa ora luwih maju?

pinggul minangka upaya kanggo njawab pitakonan: apa yen, tinimbang pindhah saka tataran formal menyang tataran eksekusi ing tataran awal, transisi iki digawe pungkasan sabisa? Yen sampeyan terus nggunakake pendekatan aksiomatik nganti sampeyan duwe bab sing cedhak karo basa pamrograman lengkap, aksioma apa sing sampeyan butuhake, lan kaya apa basa sing diasilake?

Aku pengin dadi cetha bab apa Bel lan apa ora. Senajan wis akeh fitur liyane saka McCarthy kang 1960 Lisp, Bel isih produk ing phase formal sawijining. Kaya Lisp, diterangake ing kertas 1960, iku dudu basa sing bisa digunakake kanggo program. Utamane amarga, kaya McCarthy's Lisp, ora peduli babagan efisiensi. Nalika aku nambah soko kanggo Bel, Aku njlèntrèhaké makna tambahan tanpa nyoba kanggo nyedhiyani implementasine efisien.

Kanggo apa? Kenapa nambah panggung formal? Siji jawaban kanggo ndeleng ngendi pendekatan aksiomatik bisa nggawa kita, sing minangka latihan sing menarik. Yen komputer padha kuat kaya sing dikarepake, basa kaya apa?

Nanging aku uga pracaya iku bisa kanggo nulis implementasine basis Bel efisien kanthi nambah Watesan. Yen sampeyan pengin basa sing nduweni daya ekspresif, kajelasan, lan efisiensi, bisa uga kudu diwiwiti kanthi daya ekspresif lan kajelasan, banjur ditambahake watesan, tinimbang menyang arah sing ngelawan.

Dadi yen sampeyan pengin nyoba nulis implementasi adhedhasar Bel, terusake. Aku bakal dadi salah sawijining pangguna pisanan.

Pungkasane, aku ngasilake sawetara perkara saka dialek sadurunge. Salah siji desainer sing entuk bener, utawa dipengaruhi dening dialek sing digunakake sadurunge, aku ora weruh jawaban sing bener - wektu bakal ngomong. Aku uga nyoba supaya ora nyimpang saka konvensi Lisp. Tegese yen sampeyan ndeleng pamindhahan saka konvensi Lisp, bisa uga ana alesan.

Katrangan basa ing kene.

Matur nuwun kanggo terjemahan: Denis Mitropolsky

PS

Source: www.habr.com

Add a comment