1

我正在研究一种脚本语言,并想为我的语言编写一个编译器/解释器。

我想在标准 ML 中做编译器

我现在的问题是,是否有进行这种排序设计过程的“模式”?

作为计算机科学课程的一部分,我从头开始编写了一个 java 编译器,但这有点作弊,因为给出了语言,这意味着给出了参考实现和语法、语法和其他规范。

如果从头开始,只有一个问题域如何开始?

我正在寻找有关该主题的书或教程。

4

2 回答 2

4

用函数式语言构建现代编译器的经典书籍有:

于 2012-05-18T13:50:29.937 回答
2

计算机编程的概念、技术和模型。这本书不是直接关于如何设计一种语言,而是深入探索一种有趣的语言 (Oz) 的特性、它们如何交互以及它们如何启用各种使用模式和特性。它非常有助于了解各种设计决策和功能的含义。阅读一些这样的书,观察由此产生的语言,并从中进行综合是学习如何设计语言的一种不错的方式。

同样,但更实用的是,Scala 编程在解释语言特性如何实现风格方面做得很好。

很多语言设计归根结底是品味和良好的感觉。阅读对现有语言的深入探索是培养和磨练这种品味的好方法。

于 2012-05-24T15:20:23.817 回答