从中间码到Java字节码(龙书)
From intermediate code to Java bytecode (dragon book)
我参加了编译器课程,使用 "dragon book" 作为教科书。它给出了如何将其编译器生成的中间代码转换为目标语言汇编的说明。
我的问题是:在哪里可以找到将 3 地址格式的中间代码转换为 java 字节码的说明,与书中使用的语法相同?
如果您想知道如何自己创建二进制 Java 类文件,没有比官方 JVM specification.
更好的资源了
如果您想以人类可读的文本格式编写类文件,可以使用各种汇编器:Krakatau, Jasmin, and Lilac 等等。请注意,Jasmin 很旧并且基本上没有维护,尽管 Sable Research Group 维护了它的一个分支以便与他们自己的工具一起使用。
我已经实现了一个翻译器,它采用编译器前端的 Dragon Book 实现生成的三地址中间代码,并将其转换为语法类似于 Java 的字节码 Jasmin. Then it uses Krakatau 到 assemble 通过 JVM 将其转换为可执行的类文件。
您可以在 https://github.com/joaofbsm/smallL/tree/master/code/translator 查看我的实现。
我参加了编译器课程,使用 "dragon book" 作为教科书。它给出了如何将其编译器生成的中间代码转换为目标语言汇编的说明。
我的问题是:在哪里可以找到将 3 地址格式的中间代码转换为 java 字节码的说明,与书中使用的语法相同?
如果您想知道如何自己创建二进制 Java 类文件,没有比官方 JVM specification.
更好的资源了如果您想以人类可读的文本格式编写类文件,可以使用各种汇编器:Krakatau, Jasmin, and Lilac 等等。请注意,Jasmin 很旧并且基本上没有维护,尽管 Sable Research Group 维护了它的一个分支以便与他们自己的工具一起使用。
我已经实现了一个翻译器,它采用编译器前端的 Dragon Book 实现生成的三地址中间代码,并将其转换为语法类似于 Java 的字节码 Jasmin. Then it uses Krakatau 到 assemble 通过 JVM 将其转换为可执行的类文件。
您可以在 https://github.com/joaofbsm/smallL/tree/master/code/translator 查看我的实现。