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

2.6 案例研究:设计Unicon中的图形功能

Unicon的图形是具体的,而且尺寸非同小可。Unicon的图形功能设计是一个真实的例子,它说明了编程语言设计中的一些权衡问题。大多数编程语言没有内置图形(或任何内置输入/输出),而是将所有输入/输出转移到库。C语言当然可以通过库执行输入/输出,Unicon的图形功能基于C语言的API。当涉及库时,许多语言都模拟它们在语言(如C或Java)中实现时使用的较低级语言,并试图提供该实现语言的API的精确1:1转换。当高级语言在较低级别的语言上实现时,此方法提供了对底层API的完全访问,代价是在使用这些功能时降低了语言级别。

由于诸多原因,这不是Unicon的选择。Unicon的图形是通过两个独立的大型语言添加的:首先是2D,然后是3D,我们将分别考虑它们的设计问题。2.6.1节将介绍Unicon的2D图形功能。