Scala编译器中间代码规范
Specification of Scala compiler's intermediate code
Scala 编译器生成的中间代码(即将 -Xprint-icode
选项传递给 scalac)是否有正式规范或详细描述?
谢谢。
icode 格式正在消失,引入了新的 GenBCode
后端,它直接从 scalac Tree
s 到 ASM 的字节码表示。如果我是你,我不会花时间去学习它。
相反,我建议您在 cleanup
之后打印(-Xprint:cleanup
),这是后端之前的最后一个阶段,使用 scalac 树,这很容易理解,因为它们基本上是Java 使用 Scala 语法的代码。
就是说,如果您坚持要处理 icode
,我认为没有任何关于它的真实文档。但是它和JVM字节码几乎是一一对应的:它有类、字段和方法。在方法内部,有一个基于堆栈的指令集。
在此处查找 icode 文档(第 35 页):
http://infoscience.epfl.ch/record/150270/files/EPFL_TH4820.pdf
Scala 编译器生成的中间代码(即将 -Xprint-icode
选项传递给 scalac)是否有正式规范或详细描述?
谢谢。
icode 格式正在消失,引入了新的 GenBCode
后端,它直接从 scalac Tree
s 到 ASM 的字节码表示。如果我是你,我不会花时间去学习它。
相反,我建议您在 cleanup
之后打印(-Xprint:cleanup
),这是后端之前的最后一个阶段,使用 scalac 树,这很容易理解,因为它们基本上是Java 使用 Scala 语法的代码。
就是说,如果您坚持要处理 icode
,我认为没有任何关于它的真实文档。但是它和JVM字节码几乎是一一对应的:它有类、字段和方法。在方法内部,有一个基于堆栈的指令集。
在此处查找 icode 文档(第 35 页): http://infoscience.epfl.ch/record/150270/files/EPFL_TH4820.pdf