J'ai créé un compilateur en C (utilisant lex & bison) pour un langage de programmation à typage dynamique qui supporte les boucles, les déclarations de fonctions à l'intérieur des fonctions, les appels récursifs, etc. J'ai également créé une machine virtuelle qui exécute le code intermédiaire créé par le compilateur.
Je pensais maintenant qu'au lieu de compiler vers mon propre code intermédiaire, il fallait le compiler vers le byte code java.
J'ai vu que la question sur la création d'un langage JVM a déjà été posée. a demandé mais je ne trouve pas la réponse très instructive.
Voici donc mes questions :
- Je suppose que pour créer un langage pour la JVM, il est indispensable de lire la Spécification de la JVM Quels autres livres pouvez-vous suggérer (à l'exception du Livre du Dragon, bien sûr) ? Je suis surtout intéressé par des livres ou des tutoriels sur la façon de créer un langage JVM, pas un compilateur en général.
- Il existe de nombreuses bibliothèques Java qui permettent de lire, d'écrire et de modifier les fichiers .class, par exemple jclasslib , bcel , bytecode gnu etc. Laquelle suggérez-vous ? Par ailleurs, connaissez-vous des bibliothèques C qui font le même travail ?
- Je pensais jeter un coup d'oeil à un autre langage qui cible la JVM comme Clojure, Jython ou JRuby. Mais tous ces langages sont de très haut niveau et compliqués (pour créer un compilateur pour eux). Je cherche un langage de programmation plus simple (peu importe s'il est inconnu ou inutilisé) qui cible la JVM et dont le compilateur est open source. Des idées ?