J'ai créé un compilateur en C (en utilisant lex & bison) pour un langage de programmation typé dynamique qui prend en charge 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 au lieu de compiler vers mon propre code intermédiaire, compilez-le en java byte code.
J'ai vu que la question sur la création d'un langage JVM a déjà été posée mais je ne trouve pas la réponse très informative.
Donc, voici mes questions:
- Je suppose que pour créer un langage pour JVM, un must est de lire le livre de spécifications JVM , quels autres livres pouvez-vous suggérer (sauf Dragon Book bien sûr)? Je suis surtout préoccupé par les livres ou les 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 pour lire, écrire et modifier des fichiers .class comme jclasslib , bcel , gnu bytecode , etc. Laquelle suggérez-vous? Connaissez-vous également les bibliothèques C qui font le même travail?
- Je pensais jeter un œil à peut-être 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 cherchais un langage de programmation plus simple (cela ne me dérange pas s'il est inconnu ou inutilisé) qui cible la JVM et son compilateur est open source. Des idées?