Katakanlah, saya ingin membuat bahasa pemrograman saya sendiri. Dengan asumsi bahwa saya telah membuat semua keputusan tentang bagaimana saya ingin terlihat dan bertindak, apakah saya hanya perlu menulis kompiler untuk itu?
Tidak Membuat semua keputusan tentang bagaimana Anda ingin bahasa untuk melihat dan bertindak yang menciptakan bahasa pemrograman Anda sendiri. Anda tidak memerlukan kompiler atau juru bahasa untuk membuat bahasa pemrograman. Anda tidak memerlukan kompiler atau juru bahasa untuk menulis program dalam bahasa pemrograman Anda.
Anda hanya memerlukan kompiler atau juru bahasa jika Anda benar-benar ingin menjalankan program yang Anda tulis.
Pertanyaan saya adalah, apakah pembuatan bahasa pemrograman dilakukan melalui kompiler? Tingkat tinggi baik-baik saja.
Tidak. Pembuatan bahasa pemrograman dilakukan dengan membuat dua set aturan:
- seperti apa program hukum (sintaksis)
- apa yang program hukum lakukan (semantik)
Itu dia.
Ada bahasa pemrograman yang tidak memiliki implementasi. Atau yang tidak memiliki implementasi untuk waktu yang lama.
Misalnya, Konrad Zuse menciptakan Plankalkül pada pertengahan 1940-an, tetapi karena perang ia tidak pernah dapat mengimplementasikannya. Ini pertama kali dilaksanakan sebagai bagian dari disertasi pada tahun 1975. Tapi itu pasti ada pada 1950-an dan 1960-an.
LISP pada awalnya dirancang sebagai alternatif yang lebih dapat ditelusuri ke kalkulus λ untuk mempelajari komputasi. Itu diterapkan oleh Steve Russell, seorang siswa John McCarthy. McCarthy sendiri bahkan meragukan bahwa LISP dapat diimplementasikan sama sekali!
APL pada awalnya dirancang sebagai notasi untuk pengajaran matematika. Kemudian diperluas untuk berfungsi sebagai bahasa spesifikasi untuk IBM System / 360. Implementasi datang kemudian, setelah bahasa sudah digunakan.
PLANNER adalah bahasa yang sangat berpengaruh, yang sebenarnya hanya diterapkan setelah sudah mempengaruhi bahasa lain; itu dirancang pada tahun 1969 dan diimplementasikan pada tahun 1973, pada saat itu ia telah mempengaruhi Smalltalk dan Prolog (keduanya 1972).
Struktur dan Interpretasi Mekanika Klasik adalah buku teks fisika yang menggunakan Skema alih-alih matematika untuk menggambarkan sistem dinamis; fakta bahwa Skema memiliki penerjemah dan penyusun tidak penting untuk buku itu, ia digunakan sebagai bahasa untuk menyampaikan pikiran, bukan menjalankan program.
Seperti yang Anda lihat, bahasa pemrograman dapat bermanfaat bahkan tanpa implementasi. "Program harus ditulis untuk dibaca manusia, dan hanya untuk komputer yang dieksekusi" adalah kutipan terkenal dari Struktur dan Interpretasi Program Komputer. Bahasa pemrograman adalah bahasa formal untuk menggambarkan proses yang rumit secara jelas. Fakta bahwa jika Anda menggambarkan suatu proses yang cukup tepat untuk dipahami manusia, itu juga dapat dieksekusi oleh mesin adalah efek samping. Ini adalah efek samping yang sangat diinginkan, berguna, kuat, tetapi merupakan efek samping.
"Bahasa pemrograman" pertama, kalkulus λ, kalkulus SKI, Mesin Turing, fungsi rekursif μ, tidak diciptakan untuk dieksekusi. Mereka diciptakan untuk memahami pertanyaan mendasar dari logika dan matematika.