【问题标题】:Is it possible to implement an interpreted-only language in a JITted one?是否可以在 JITted 中实现一种只解释的语言?
【发布时间】:2018-08-04 18:22:41
【问题描述】:

例如,据我所知,J 是一种只能解释的语言,因为由于其语法类型,编写编译器是不可能/不切实际的(我远非专家)。

鉴于我们现在拥有将 JIT 与元编程能力(如 Racket 或 Scheme)相结合的语言,是否有可能将仅解释器的语言实现为一组宏以编译成宿主语言而不损害原始语言行为?

我问这个是因为,据我了解,JIT 模糊了“编译时与运行时”的界限,因此当你运行时,比如 JITted Scheme 程序,它应该能够提供与等效程序相同的行为口译员。

对吗?

【问题讨论】:

    标签: compiler-construction grammar interpreter jit j


    【解决方案1】:

    程序的 JIT 版本必须具有与解释版本完全相同的可识别行为,否则实现是错误的。

    我想说所有的编程语言都可以用 JIT 来实现,但是生成的机器代码可能需要在执行时进行大量运行时调用来帮助它,它可能需要向解释器提供帮助案件难破。反优化和重新编译也有帮助。

    但最终解释器只是决定执行什么机器代码,JIT 可以做同样的事情,但以另一种方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2011-02-04
      • 2021-07-13
      • 2010-10-15
      • 1970-01-01
      • 2011-07-17
      • 2011-05-07
      相关资源
      最近更新 更多