上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1 编写自己的编程语言的动机
当然,一些编程语言发明者简直就是计算机科学的摇滚巨星,例如丹尼斯·里奇(Dennis Ritchie)和吉多·范罗苏姆(Guido van Rossum)!但在当时,成为计算机科学的摇滚明星反而更容易。很久以前,我从第二届编程语言史会议一位参会者那里听到了以下报告:大家一致认为编程语言领域已经灭亡了,所有重要的语言都已经发明出来了!这一论断直到一两年后Java问世才被证明是大错特错的。从那时起,诸如Go语言之类的编程语言出现了十几次。仅仅过了60年,就声称编程领域已经成熟,并且没有什么新发明可以让你成名,这是不明智的。
不过,名誉并不是构建编程语言的好理由,从编程语言发明中获得名誉或财富的机会微乎其微。只要有时间和兴趣,好奇和渴望知道事物的工作原理都是发明编程语言的正当理由,但也许需求和必要性才是要构建编程语言的最佳理由。
有些人需要构建一种新的编程语言或实现对现有编程语言的新突破,以面向新的处理器或与对手公司竞争。如果你不需要,那么也许你已经找到了可用于你想要开发的程序的某些领域的最佳语言(以及编译器或解释器),但它们缺失你的工作需要的一些关键功能,而正是这些缺失的功能给你带来了痛苦。每隔一段时间,就会有人提出需要一种全新的计算风格,新的编程范式需要新的编程语言来实现。
在讨论构建语言的动机时,我们先谈谈不同类型的语言、组织以及本书中使用的示例,这些主题都值得仔细介绍。