【问题标题】:Is it possible to write a Just In Time (JIT) compiler for Haskell? [closed]是否可以为 Haskell 编写即时 (JIT) 编译器? [关闭]
【发布时间】:2016-04-27 05:05:49
【问题描述】:

我有兴趣了解有关 Haskell 如何编译为本机代码的更多信息。我知道 Haskell 是静态类型检查的,这就是您可能不想这样做的原因。但有可能吗?

【问题讨论】:

  • 为什么静态类型检查会阻止人们编写 JIT?事实上,JIT 静态类型语言比动态类型语言更容易。
  • JIT 编译器只是您经常运行的常规编译器 :)。
  • @TheParamagneticCroissant 嗯,静态类型检查语言的全部意义在于它在编译时进行类型检查,对吧?据我了解,JIT 编译器会在运行时将源语言编译为本机代码。但这不会破坏静态类型检查的意义吗?也许我错过了一些基本的东西。
  • 请注意,我说的是我将 .hs 编译为本机代码的情况,而不是 .hs -> 字节码/某些 IR。在后一种情况下,我了解静态类型检查的好处将如何发挥作用。
  • 可能吗?当然。你也可以用 C 或 C++ 做同样的事情……JIT 的优点是在编译时可以利用一些运行时信息,例如:哪些代码段运行得更频繁,代码流的平均情况如何,正在使用哪些数据及其平均大小/寿命等。这有助于执行优化。 JIT 对于动态类型语言来说是一件事情,因为您可以利用运行时类型信息,但是如果您已经先验地拥有了这些信息,那么您就少了一件需要担心的事情。

标签: haskell compiler-construction jit


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2014-07-20
    • 1970-01-01
    • 2010-09-21
    • 2011-06-29
    • 1970-01-01
    相关资源
    最近更新 更多