S I*_*S I 11 interpreter functional-programming
假设我想为函数式语言实现解释器.我想了解这样做所涉及的问题以及可用的合适文献.这是一种处于早期设计阶段的新语言,这就是问题范围广泛的原因.
出于本讨论的目的,我们可以假设语言的目的并不重要,并且如果它在编写解释器的容易性方面产生显着差异,则可以更改其功能特征(甚至是大幅度改变).
麻省理工学院网站上有一份计算机程序结构和解释的在线副本,以及使用Scheme的麻省理工学院6.001讲座的视频,于1986年在惠普录制.这些都是语言设计的一个很好的介绍.
我强烈推荐以计算机程序的结构和解释 (SICP)作为起点。本书将介绍编写解释器(和编译器)意味着什么,并且通常是任何设计语言的人必读的书。
为函数式语言实现解释器与为任何其他通用语言实现解释器不太可能有太大区别。有词法分析、解析、AST 构造、语义分析,以及执行(对于纯解释器)或代码生成和优化(对于编译器,甚至编译为 Java/Perl/Python 等字节码)。SICP 将介绍“应用顺序”和“正常顺序”评估之间的区别,这在纯函数上下文中可能对您很重要。
| 归档时间: |
|
| 查看次数: |
2398 次 |
| 最近记录: |