ฉันได้สร้างคอมไพเลอร์ในภาษา C (โดยใช้ Lex & Bison) สำหรับภาษาการเขียนโปรแกรมแบบไดนามิกที่รองรับลูปการประกาศฟังก์ชันภายในฟังก์ชันการเรียกซ้ำ ฯลฯ ฉันยังสร้างเครื่องเสมือนที่รันโค้ดกลางที่สร้างโดยคอมไพเลอร์
ฉันกำลังคิดเกี่ยวกับการรวบรวมเป็น Java bytecode แทนที่จะเป็นรหัสกลางของฉันเอง
ผมเห็นว่าคำถามเกี่ยวกับการสร้างภาษา JVM ได้รับแล้วถามแต่ผมไม่หาคำตอบให้ข้อมูลมาก
นี่คือคำถามของฉัน:
- ฉันเดาว่าจะสร้างภาษาสำหรับ JVM สิ่งที่ต้องทำคือการอ่านหนังสือข้อกำหนดของ JVMคุณสามารถแนะนำหนังสืออะไรได้อีกบ้าง (ยกเว้น Dragon Book แน่นอน) ส่วนใหญ่ฉันกังวลเกี่ยวกับหนังสือหรือแบบฝึกหัดเกี่ยวกับวิธีสร้างภาษา JVM ไม่ใช่คอมไพเลอร์โดยทั่วไป
- มีไลบรารี Java มากมายสำหรับอ่านเขียนและเปลี่ยน
.class
ไฟล์เช่นjclasslib , bcel , gnu bytecodeฯลฯ คุณจะแนะนำตัวไหน นอกจากนี้คุณทราบถึงไลบรารี C ที่ทำงานเดียวกันหรือไม่? - ฉันกำลังคิดที่จะดูภาษาอื่นที่กำหนดเป้าหมายไปที่ JVM เช่น Clojure, Jython หรือ JRuby แต่ภาษาทั้งหมดเหล่านี้มีระดับสูงและซับซ้อนมาก (เพื่อสร้างคอมไพเลอร์สำหรับพวกเขา) ฉันกำลังมองหาภาษาการเขียนโปรแกรมที่ง่ายกว่า (ฉันไม่สนใจว่ามันไม่รู้จักหรือไม่ได้ใช้) ที่กำหนดเป้าหมาย JVM และคอมไพเลอร์เป็นโอเพ่นซอร์ส ความคิดใด ๆ ?