Untuk membuat juru bahasa, Anda harus menulis pengurai kode sumber, loop eksekusi bytecode, dan sejumlah besar kode pustaka standar. Tidak selalu menyenangkan dan mudah jika Anda tidak menggunakan alat yang akan dibuat oleh kompiler dan parser untuk Anda. Dengan mereka, akan semudah mengupas buah pir untuk menulis juru bahasa untuk orang yang berpengetahuan. Mari kita lihat contoh penulisan interpreter dengan JIT di PyPy.
instruksi
Langkah 1
Pilih bahasa untuk menulis. Dalam hal ini, itu adalah brainfuck. Ini sangat sederhana dan terdiri dari pita bilangan bulat, yang diinisialisasi ke nol, dan 1 penunjuk ke sel saat ini dalam pita. Hanya ada delapan perintah dalam bahasa: ">" - pindahkan penunjuk ke sel berikutnya,"
Langkah 2
Tulis juru bahasa dengan Python biasa. Penghitung instruksi akan menyimpan pointer ke instruksi saat ini. Ekspresi pertama akan mengambil pernyataan, setelah itu beberapa pernyataan menentukan bagaimana menjalankannya. Abaikan implementasi operator "[" dan "]", karena mereka harus mengubah penghitung perintah ke posisi tanda kurung yang sama.
Langkah 3
Menerapkan kelas Tape yang menyimpan pointer ke nomor saat ini dan pita bilangan bulat. Rekaman itu akan tumbuh sesuai kebutuhan. Parsing kode sumber sebelumnya sehingga beberapa komentar tidak dibaca satu byte pada satu waktu. Buat kamus tanda kurung juga, sehingga Anda dapat menemukan tanda kurung yang cocok di dalamnya jika diperlukan.
Langkah 4
Jalankan def parse (program). Fungsi ini mengembalikan string hanya dari perintah dan kamus kurung.
Langkah 5
Kumpulkan semuanya dan Anda memiliki penerjemah brainfuck yang berfungsi. Mulai juru bahasa Python dan pastikan itu berfungsi. Ini hanyalah satu contoh penulisan juru bahasa menggunakan bahasa yang paling sederhana. Jika mau, Anda dapat menulis dalam hampir semua bahasa, setelah membiasakan diri dengan sifat dan tujuannya.