Eu criei um compilador em C (usando lex & bison) para uma linguagem de programação de tipo dinâmico que suporta loops, declarações de funções dentro de funções, chamadas recursivas, etc. Eu também criei uma máquina virtual que executa o código intermediário criado pelo compilador.
Agora eu estava pensando em compilar meu próprio código intermediário, compilá-lo em código de bytes java.
Eu vi que a pergunta sobre a criação de uma linguagem JVM já foi feita, mas não acho a resposta muito informativa.
Então, aqui estão as minhas questões:
- Eu acho que para criar uma linguagem para JVM uma obrigação é ler o livro de especificações da JVM , que outros livros você pode sugerir (exceto Dragon Book, é claro)? Estou mais preocupado com livros ou tutoriais sobre como criar uma linguagem JVM, não um compilador em geral.
- Existem muitas bibliotecas Java para ler, gravar e alterar arquivos .class como jclasslib , bcel , gnu bytecode , etc. Qual você sugere? Além disso, você está ciente das bibliotecas C que fazem o mesmo trabalho?
- Eu estava pensando em dar uma olhada em outra linguagem que vise a JVM como Clojure, Jython ou JRuby. Mas todas essas linguagens são de alto nível e complicadas (para criar um compilador para elas). Eu estava procurando por uma linguagem de programação mais simples (não me importo se é desconhecida ou não usada) que tem como alvo a JVM e seu compilador é de código aberto. Alguma ideia?