1

Scala编译器生成的中间代码是否有任何正式的规范或详细描述(-Xprint-icode即将选项传递给scalac)?

谢谢。

4

2 回答 2

1

icode 格式正在消失,引入了新的GenBCode后端,它直接从 scalac Trees 到 ASM 的字节码表示。如果我是你,我不会花时间去学习它。

相反,我建议您在cleanup( -Xprint:cleanup) 之后打印,这是后端之前的最后一个阶段,使用 scalac 树,它们非常容易理解,因为它们基本上是具有 Scala 语法的 Java 代码。

也就是说,如果您坚持要处理icode,我认为没有任何关于它的真实文档。但它几乎与 JVM 字节码是一一对应的:它有类、字段和方法。在方法内部,有一个基于堆栈的指令集。

于 2015-05-16T23:08:37.887 回答
0

在此处查找 icode 的文档(第 35 页):http: //infoscience.epfl.ch/record/150270/files/EPFL_TH4820.pdf

于 2015-07-15T16:27:21.877 回答