【问题标题】:A text book on how to design a language关于如何设计语言的教科书
【发布时间】:2012-05-25 21:10:49
【问题描述】:

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

我希望在标准 ML 中进行编译器

我现在的问题是,有没有一种“模式”来进行这种设计过程?

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

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

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

【问题讨论】:

  • 您是否正在寻找一本关于函数式语言设计的书,以函数式方式编写编译器的编译器设计,或者如何编译函数式的指南语言?
  • P.s.,如果是第二个,我的建议是,不要。已经有一堆很好的函数式语言可以练习编译,“核心 ML”可能就是其中之一。

标签: compiler-construction programming-languages


【解决方案1】:

【讨论】:

  • 另外提到“使用延续编译”可能是个好主意。
  • 比你,我实际上已经阅读你的博客一段时间了 :) 我看过 Apple 的书,但它仍然存在“老虎”语言被预定义的问题。是否有关于如何设计语言的书籍?
  • +1 用于实现函数式语言。不一定是一本如何设计的书,而是一本可以深入了解一种语言的好书。
【解决方案2】:

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

同样,但更务实的是,Programming Scala 很好地解释了语言特性如何促成风格。

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

【讨论】:

    猜你喜欢
    • 2010-11-05
    • 2021-01-15
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2023-03-26
    相关资源
    最近更新 更多