在GCC compiler we see几个'intermediate languages ':RTL , GENERIC and GIMPLE .
This answer hints在 scalac
中的中间表示的想法。
我的问题是:在 Scala 中是否有编译器的“中间表示”?有这方面的文档吗?
假设:
- 我指的不是 JVM 字节码。我的意思是高于它的抽象级别。
最佳答案
最接近的等效项是 scalac 使用的 icode 和 bcode,有关 Scalac 优化器的更多信息,请查看 Miguel Garcia 的网站,此处:http://magarciaepfl.github.io/scala/
鉴于字节码是 scalac 的最终输出,您可能还会将 Java 字节码本身视为中间表示。
或者也许 true 中间体是 JIT 在它最终输出 native 指令之前产生的东西?
但最终……没有任何一个地方可以让您声称“有中间体!”。 Scalac 分阶段工作,不断改变抽象语法树,每个阶段都会产生一个新的中间体。整个东西就像一个洋葱,很难尝试挑选出比其他任何一层都更重要的一层。
关于scala - scalac 中使用的中间语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20863914/