Paul Graham mengumumkan bahasa pemrograman baru Bel

Bahasa Bel ditulis dalam bahasa Bel.

Paul Graham mengumumkan bahasa pemrograman baru Bel
Pada tahun 1960, John McCarthy mendeskripsikan Lisp, bahasa pemrograman jenis baru. Saya mengatakan "tipe baru" karena Lisp bukan hanya bahasa baru, tetapi cara baru untuk mendeskripsikan bahasa.

Untuk mendefinisikan Lisp, dia memulai dengan serangkaian pernyataan kecil, semacam aksioma, yang kemudian dia gunakan untuk menulis penerjemah bahasa itu sendiri.

Ini tidak bertujuan untuk mendeskripsikan bahasa pemrograman dalam pengertian biasa – bahasa yang digunakan untuk memberi tahu komputer apa yang harus dilakukan. Dalam karyanya tahun 1960, Lisp dipahami sebagai model komputasi formal yang mirip dengan Mesin Turing. McCarthy tidak berpikir untuk menggunakannya di komputer sampai Steve Russell, mahasiswa pascasarjananya, menyarankannya.

Lisp pada tahun 1960 tidak memiliki fitur-fitur yang umum pada bahasa pemrograman. Misalnya, tidak ada angka, kesalahan, atau I/O. Jadi orang yang menggunakan Lisp sebagai dasar bahasa yang digunakan untuk memprogram komputer harus menambahkan sendiri fitur-fitur tersebut. Dan mereka melakukan ini dengan meninggalkan pendekatan aksiomatik.

Dengan demikian, pengembangan Lisp berlangsung dalam dua tahap – dan tampaknya cukup independen – tahap: tahap formal, diperkenalkan pada makalah tahun 1960, dan tahap implementasi, di mana bahasa diadaptasi dan diperluas untuk dijalankan di komputer. Pekerjaan utama, jika diukur dengan jumlah peluang yang diterapkan, terjadi pada tahap implementasi. Lisp dari tahun 1960, diterjemahkan ke Common Lisp, hanya berisi 53 baris. Ia hanya melakukan apa yang diperlukan untuk menafsirkan ekspresi. Segala sesuatu yang lain ditambahkan pada tahap implementasi.

Hipotesis saya adalah, meskipun memiliki sejarah yang sulit, Lisp mendapat manfaat dari fakta bahwa perkembangannya terjadi dalam dua fase; bahwa latihan awal dalam mendefinisikan suatu bahasa dengan menulis penerjemahnya di dalamnya memberikan Lisp kualitas terbaiknya. Dan jika ya, mengapa tidak melangkah lebih jauh?

Bel merupakan upaya untuk menjawab pertanyaan: bagaimana jika, alih-alih berpindah dari tahap formal ke tahap pelaksanaan pada tahap awal, transisi ini dilakukan selambat-lambatnya? Jika Anda terus menggunakan pendekatan aksiomatik sampai Anda memiliki bahasa pemrograman yang lengkap, aksioma apa yang Anda perlukan, dan seperti apa bahasa yang dihasilkan?

Saya ingin memperjelas apa itu Bel dan apa yang bukan. Meskipun memiliki lebih banyak fitur daripada Lisp McCarthy tahun 1960, Bel masih merupakan produk dalam tahap formal. Seperti Lisp, yang dijelaskan dalam makalah tahun 1960, ini bukanlah bahasa yang dapat Anda gunakan untuk memprogram. Terutama karena, seperti Lisp McCarthy, ia tidak peduli dengan efisiensi. Ketika saya menambahkan sesuatu ke Bel, saya menjelaskan arti dari penambahan tersebut tanpa berusaha memberikan implementasi yang efisien.

Untuk apa? Mengapa memperluas tahap formal? Salah satu jawabannya adalah dengan melihat ke mana pendekatan aksiomatik dapat membawa kita, dan hal ini merupakan latihan yang menarik. Jika komputer sekuat yang kita inginkan, seperti apa bahasanya?

Namun saya juga yakin bahwa implementasi berbasis Bel yang efisien dapat dibuat dengan menambahkan batasan. Jika Anda menginginkan bahasa yang memiliki kekuatan ekspresif, kejelasan, dan efisiensi, mungkin ada baiknya memulai dengan kekuatan dan kejelasan ekspresif, lalu menambahkan batasan, daripada sebaliknya.

Jadi jika Anda ingin mencoba menulis implementasi berdasarkan Bel, silakan. Saya akan menjadi salah satu pengguna pertama.

Pada akhirnya, saya mereproduksi beberapa hal dari dialek sebelumnya. Entah desainer mereka melakukannya dengan benar, atau karena dipengaruhi oleh dialek yang digunakan sebelumnya, saya tidak melihat jawaban yang tepat - waktu akan menjawabnya. Saya juga berusaha untuk tidak menyimpang terlalu jauh dari konvensi Lisp. Artinya, jika Anda melihat adanya perpindahan dari konvensi Lisp, mungkin ada alasannya.

Deskripsi lanjutan bahasanya di sini.

Terima kasih atas terjemahannya: Denis Mitropolsky

PS

Sumber: www.habr.com

Tambah komentar