创建你自己的酷炫编程语言






3.77/5 (17投票s)
关于《创建你自己的酷炫编程语言》一书的评论
引言
我已经做了19年的程序员,虽然我的工作主要围绕分布式、实时和嵌入式系统,但我一直对编译器、解释器和编写解析器很着迷。我记得在大学里,听完一堂关于编译器的课后,我们一伙人认为我们可以用我们自己的编程语言征服世界。但那并没有发生。依我之见,每个软件开发人员都应该经历学习如何编写解析器或如何构建编译器的心理过程。关键是理解在语言实现中发现的常见模式。这会让你成为一个更好的程序员!
语言设计是火箭科学吗?
正如Eric Lippert曾经说过:“令我惊讶的是,很多人确实将编程语言视为神奇的东西。当我在聚会或其他场合遇到人时,如果他们问我做什么,我告诉他们我设计编程语言并实现编译器和工具,而且令人惊讶的是,许多人——专业程序员,请注意——会说‘哇,我从来没有想过这个问题,但是的,总有人需要设计这些东西’。就好像他们认为语言是凭空产生的,并且已经拥有了围绕它们的工具基础设施一样。”
语言的设计就像任何其他产品一样:通过仔细地在一系列相互竞争的可能性中做出权衡。编译器和工具的构建就像任何其他专业的软件产品一样:通过分解问题,一次编写一行代码,然后对生成的程序进行彻底的测试。
如果你有兴趣设计一种语言,一个好的开始是思考你已经知道的语言的不足之处。设计决策通常源于考虑另一个产品中的设计缺陷。我正在寻找一本关于创建编程语言的书,这本书不要太密集,要切中要害,并且没有多余的术语。我找到了 Marc-Andre 写的 创建你自己的了不起的编程语言电子书。这本书没有让我失望,也不会让任何对语言应用感兴趣的程序员失望。

我为什么要购买这本书?
我购买这本书的主要原因是它得到了 Ruby 的创建者 Matz 的认可,并且同一本书也被用来编写流行的语言 CoffeeScript。 这足以让我投资 40 美元,而且还提供退款保证!
Marc 很好地解释了创建你自己的语言的不同方法。他首先展示了如何使用纯 Ruby 的词法分析器、解析器和解释器,创建一个类似于 Ruby 且带有 Python 缩进的语言“Awesome”。所有这些工具都包含在书籍包中。第二种方法是更全面的方法,托管在 JVM(Java 虚拟机)上,并提供一个执行环境,你可以在其上构建一个更高性能的语言。
还有一个 10 分钟的屏幕录像,展示了如何扩展 JVM 语言。本书的所有章节都有小的练习,帮助你练习所学的内容,而且我喜欢看实际的代码并进行练习,就像一个务实的人一样。