Scala编译器的中间代码规范

时间:2015-05-16 22:03:26

标签: scala scalac intermediate-code

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

感谢。

2 个答案:

答案 0 :(得分:1)

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

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

那就是说,如果你坚持与icode打交道,我认为没有任何关于它的真实文件。但它几乎与JVM字节码具有一对一的对应关系:它具有类,字段和方法。在内部方法中,有一个基于堆栈的指令集。

答案 1 :(得分:0)

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