口译员理论,部分评估员和编制者

dav*_*k01 3 compiler-construction interpreter compiler-theory stack-machine computation-theory

所以我一直在学习堆栈机器,解释器,编译器以及与编程语言及其一般理论相关的一些其他内容.我在书籍和网上找到的大多数东西都非常专业,并且谈论一个特定主题,例如口译员,没有提及它与其他主题的关系,例如部分评估者.是否有任何良好的初学者资源来探索解释器,编译器和部分评估器之间的互连?通过良好的资源,我的意思是解释理论和具体实施.我越了解这些东西,我在日常工作中看到的地方越多,所有这些都可以应用,但缺乏初学者友好资源有点无聊.

box*_*box 8

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