领域特定语言(DSL)实现指南
1. 领域特定语言(DSL)简介
领域特定语言(Domain Specific Languages,简称 DSLs)是针对特定问题领域的编程语言或规范语言。与通用编程语言(General Purpose Languages,如 Java 和 C)不同,DSL 并非旨在提供解决所有类型问题的功能。如果你面临的问题领域恰好能被某个特定的 DSL 覆盖,那么使用该 DSL 来解决问题会比使用通用编程语言更加轻松快捷。
常见的 DSL 例子包括用于查询关系数据库的 SQL、用于符号数学的 Mathematica 以及 HTML 等。用 DSL 编写的程序或规范可以被解释或编译成通用编程语言,在某些情况下,这些规范也可以代表将由其他系统处理的简单数据。
2. 引入新 DSL 的必要性
你可能会疑惑,为什么不使用 XML 来描述特定数据、模型或应用,而要引入新的 DSL 呢?XML 确实可以以机器可读和人类可读的形式描述数据,而且现在有很多工具可以让你读写或交换 XML 数据,无需根据特定语法(如 XML 模式定义)解析这些数据。XML 基本上只有一种标签语法需要学习,所有数据都可以用它来表示。
然而,XML 虽然机器可读,但人类可读性欠佳。如果 XML 数据由程序生成,用于交换数据是没问题的,但在很多情况下,程序员和用户需要手动编写 XML 数据,比如指定应用程序的特定配置。编写 XML 文件可能很痛苦,阅读起来更是困难,因为 XML 往往很冗长,大量标签带来了过多的语法噪音,这些标签虽然有助于计算机处理 XML 数据,但在人们读写 XML 文件时却会造成干扰。
例如,下面是一个用 XML 描述
超级会员免费看
订阅专栏 解锁全文
63

被折叠的 条评论
为什么被折叠?



