对于Scala编译器生成的中间代码是否有任何正式规范或详细描述(即将-Xprint-icode选项传递给scalac)?
谢谢。
发布于 2015-05-16 23:08:37
随着新的GenBCode后端的引入,icode格式正在消失,它直接从标度Tree到ASM的字节码表示。如果我是你,我不会花时间去学习它。
相反,我建议您使用标度树( scalac Trees )打印cleanup Java (-Xprint:cleanup),这是后端之前的最后阶段,这些树非常容易理解,因为它们基本上是带有Scala语法的Java代码。
尽管如此,如果您坚持要处理icode,我不认为它有任何真正的文档。但是它几乎与JVM字节码有一对一的对应关系:它有类、字段和方法。在方法内部,有一个基于堆栈的指令集.
发布于 2015-07-15 16:27:21
在这里查看关于icode的文档(第35页):TH4820.pdf
https://stackoverflow.com/questions/30281232
复制相似问题