scala - scalac 中使用的中间语言?

标签 scala intermediate-language scala-compiler

GCC compiler we see几个'intermediate languages ':RTL , GENERIC and GIMPLE .

This answer hintsscalac 中的中间表示的想法。

我的问题是:在 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/

相关文章:

scala - 为什么sparkcontext停止了?

中缀位置的Scala无类型宏

java - 我们怎么知道Heap要设置多大呢?

c# - if 在 IL 中是什么样子的?

scala - 创建一个模糊的低优先级隐式

scala - 我可以在 Scala 中创建一个使用不同 equals/hashCode/compare 实现的集合吗?

scala - Scala 上的 Cucumber 无法从 String 转换为 BigDecimal

algorithm - 自动将代码从一种表示形式转换为另一种表示形式?

Java Void 到 Scala 单位

scala - 什么是 "Scala Presentation Compiler"?