3

所以我一直在学习堆栈机器、解释器、编译器和其他一些与编程语言及其一般理论相关的东西。我在书本和网上找到的大部分内容都非常专业,只讨论一个特定主题,例如口译员,而没有提及它与其他主题的关系,例如部分评估员。有没有很好的初学者资源来探索解释器、编译器和部分评估器之间的互连?好的资源我的意思是解释理论和具体实现的东西。我对这些东西了解得越多,我在日常工作中看到的地方就越多,如何应用所有这些东西,但缺乏对初学者友好的资源有点令人沮丧。

4

1 回答 1

8

一个同时使用解释器、编译器和部分评估器的项目是 Truffle with Graal。你在 Java Truffle 框架中实现了一个 AST 解释器,JIT 编译器 Graal 编译它。它的特殊之处在于,Truffle 语言实现应该专门针对与当前执行相对应的实际语义的子集。如果之前的执行假设无效,Graal 只会为这个专门的子集生成机器代码并取消优化。该框架还通过所有 AST 执行方法内联,这是一种局部评估形式。你可以在网上找几篇论文或者直接看代码

于 2014-02-04T06:12:38.443 回答