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

2.3.3 领域特定类型

除了决定包含的任何通用原子类型和复合类型之外,你还应该考虑编程语言是否要针对特定领域。如果需要,则编程语言应该包含哪些数据类型来支持该领域?在提供领域特定类型和控制结构的领域特定语言以及与C++和Java等通用语言之间,存在一种平滑连续体类型,用于为所有内容提供库。类库功能强大,但对某些应用程序和领域,库方法可能比专门为支持该领域而设计的语言更复杂,更容易出错。例如,Java和C++有字符串类,但和具有用于字符串处理的特殊用途类型和控制结构的语言相比,它们不支持复杂的文本处理应用程序。除了数据类型,编程语言设计需要了解程序是如何组装和组织的。