如果我想了解编译器和编程语言是如何制作的,从哪里开始

时间:2011-06-15 17:03:17

标签: java ruby compiler-construction programming-languages language-design

  

可能重复:
  Learning to write a compiler

我知道这是一个广泛的问题,但我在哪里可以开始学习编译器的实际工作方式,编程语言是如何制作的,我的意思不是你如何使用Java或Ruby,而是人们如何实际编写它们。我不会尝试以任何方式复制这些语言,但我想了解它背后的概念和理论。因此,我需要的是对我应该搜索的内容的一些指示,或者甚至更好,更具吸引力的是书籍推荐。

此致

Jonathan Nash。

4 个答案:

答案 0 :(得分:3)

您可以查看Dragon Book

答案 1 :(得分:3)

Jack Crenshaw可能会发现Lets Build a Compiler一个有趣的介绍。

保持非常简单,专注于构建实际功能。

答案 2 :(得分:2)

    Niklaus Wirth的
  • Compiler Constrution非常好,可以从我提供的链接免费获得(是的,合法的)。它有点陈旧,并使用Oberon作为示例,但很容易遵循。

  • Marc-AndréCournoyer的
  • Create Your Own Programming Language在线提供40美元,包括一本电子书(包括练习和解决方案),两种示例语言的源代码(一种是Ruby,一种是Java)和关于扩展基于JVM的语言的截屏视频。这可能是你可以找到关于这个主题的最新手友好的介绍,之后你应该对所涉及的步骤(标记化,解析,lexing等)有一个很好的想法,并可以继续你提供的链接研究。它有点贵,但恕我直言,这是值得的。

  • 虽然CoffeeScript网站主要不是学习资源,但它有一个名为“注释源”的部分,这对于了解编程语言的工作原理非常有帮助。 CoffeeScript的作者在阅读了我在上一个要点btw中提到的那本书后开始研究它。

答案 3 :(得分:1)

我非常高兴Language Implementation Patterns并且学到了很多东西。我希望在几年前尝试实现DSL之前我已经阅读过它。