Ho creato un compilatore in C (usando lex e bison) per un linguaggio di programmazione tipizzato dinamico che supporta loop, dichiarazioni di funzioni all'interno di funzioni, chiamate ricorsive ecc. Ho anche creato una macchina virtuale che esegue il codice intermedio creato dal compilatore.
Ora stavo pensando invece di compilare il mio codice intermedio, compilarlo in codice java byte.
Ho visto che la domanda sulla creazione di un linguaggio JVM è già stata posta ma non trovo la risposta molto istruttiva.
Quindi ecco le mie domande:
- Immagino che per creare un linguaggio per JVM sia necessario leggere il libro delle specifiche JVM , quali altri libri puoi suggerire (tranne Dragon Book ovviamente)? Sono principalmente preoccupato per i libri o le esercitazioni su come creare un linguaggio JVM, non un compilatore in generale.
- Esistono molte librerie Java per leggere, scrivere e modificare i file .class come jclasslib , bcel , gnu bytecode , ecc. Quale suggeriresti? Inoltre, sei a conoscenza delle librerie C che fanno lo stesso lavoro?
- Stavo pensando di dare un'occhiata a forse un altro linguaggio che prende di mira la JVM come Clojure, Jython o JRuby. Ma tutti questi linguaggi sono di altissimo livello e complicati (creare un compilatore per loro). Stavo cercando un linguaggio di programmazione più semplice (non mi importa se è sconosciuto o inutilizzato) che prenda di mira la JVM e il suo compilatore sia open source. Qualche idea?