我用 C 语言(使用 Lex & Bison)为动态类型编程语言创建了一个编译器,它支持循环、函数内部的函数声明、递归调用等等。我还创建了一个运行编译器创建的中间代码的虚拟机。
我在考虑把它编译成 Java 字节码,而不是我自己的中间代码。
我看到关于创建 JVM 语言的问题已经是 问道了,但是我不觉得这个答案很有用。
所以我的问题是:
- 我想为 JVM 创建一种语言必须要读 JVM 规范的书,你还有什么其他的书可以推荐(当然除了 Dragon Book) ?我最关心的是关于如何创建 JVM 语言的书籍或教程,而不是一般的编译器。
- 有许多 Java 库可以读取、写入和更改
.class
文件,如 Jclasslib、 Bcel、 Gnu 字节码等。你会建议哪一个?还有,你知道 C 库也做同样的工作吗?
- 我想看看另一种针对 JVM 的语言,比如 Clojure、 Jython 或者 JRuby。但是所有这些语言都是非常高级和复杂的(为它们创建一个编译器)。我一直在寻找一种更简单的(我不介意它是未知的还是未使用的)编程语言,它的目标是 JVM 和一个开源编译器。有什么想法吗?