是否有任何由Scala编译器生成的中间代码的正式规范或详细说明(即将-Xprint-icode
选项传递给scalac)?
感谢。
答案 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