是否可以在 JITted 语言中实现仅解释语言?



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

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

我之所以问这个问题,是因为据我了解,JIT 模糊了"编译时与运行时"的界限,因此当您运行 JITted Scheme 程序时,它应该能够提供与等效解释器相同的行为。

这是对的吗?

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

我想说的是,所有编程语言都可以使用 JIT 实现,但是生成的机器代码可能必须进行大量运行时调用才能在执行时帮助它,它可能必须为难以解决的情况向解释器提供救助。去优化和重新编译也可以提供帮助。

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

相关内容

  • 没有找到相关文章

最新更新