自己动手构建编程语言:如何设计编译器、解释器和DSL
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.8 思考题

1.一些编程语言根本没有保留字,但大多数流行的主流编程语言都有几十种保留字,在编程语言中添加更多保留字的优点和缺点是什么?

2.字面常量的词法规则通常是编程语言词法规范中最大、最复杂的规则。请举例说明,即使是像整数这样简单的文字,也会对语言实现者造成很大的挑战。

3.分号通常用于终止语句或分隔相邻语句。在许多流行的主流语言中,最常见的语法错误是缺少分号,请提出一种或多种在编程语言语法中不需要分号的方法。

4.许多编程语言将程序执行定义为从main()开始。Java的不同之处在于,尽管程序执行要从main()开始,但每个类都可以有自己的main()过程,这是启动程序的另一种方式,这种奇怪的项目组织有什么价值?

5.大多数语言都具有自动、预打开的文件,用于标准输入、标准输出和错误消息。然而,在现代计算机上,这些预先打开的文件可能没有有意义的映射,程序更可能利用预先打开的标准网络、数据库或图形窗口资源。请解释这一主张是否可行以及原因。


[1]表示空洞无料。——译者注