Saya telah membuat kompiler dalam C (menggunakan Lex & Bison) untuk bahasa pemrograman tipe dinamis yang mendukung loop, deklarasi fungsi di dalam fungsi, panggilan rekursif, dll. Saya juga membuat mesin virtual yang menjalankan kode perantara yang dibuat oleh kompilator.
Saya berpikir untuk mengkompilasinya ke bytecode Java daripada kode perantara saya sendiri.
Saya melihat bahwa pertanyaan tentang membuat bahasa JVM telah diajukan , tetapi saya tidak menemukan jawabannya sangat informatif.
Jadi inilah pertanyaanku:
- Saya kira untuk membuat bahasa untuk JVM yang harus adalah membaca buku spesifikasi JVM , buku lain apa yang bisa Anda sarankan (kecuali Buku Naga tentunya)? Saya sangat memperhatikan buku atau tutorial tentang cara membuat bahasa JVM, bukan kompiler pada umumnya.
- Ada banyak library Java untuk membaca, menulis, dan mengubah
.class
file seperti jclasslib , bcel , gnu bytecode , dll. Mana yang akan Anda sarankan? Juga, apakah Anda mengetahui pustaka C yang melakukan pekerjaan yang sama? - Saya berpikir untuk melihat mungkin bahasa lain yang menargetkan JVM seperti Clojure, Jython atau JRuby. Tetapi semua bahasa ini memiliki level yang sangat tinggi dan rumit (untuk membuat kompiler untuk mereka). Saya mencari bahasa pemrograman yang lebih sederhana (saya tidak keberatan jika tidak diketahui atau tidak digunakan) yang menargetkan JVM dan kompilernya adalah open source. Ada ide?