微型语言的设计——unix编程艺术学习笔记

来源:互联网 发布:iphone蜂窝数据3g 编辑:程序博客网 时间:2024/05/01 01:56

“软件的缺陷率和使用的语言无关。”

我曾经设计过一个机遇xml的微型语言。另外,xtest项目让我向设计一个全新的,类似于真正语言的语言,而不是简单的标记语言。

在学习这一章的时候,结合整xtext一起学习一下。

发现xtext有一个问题,它只可以运行的jvm上。我想设计一种DSL,我可以自己编写它的解释器。

开始学习:

代码量越少,出错的机会就越少。

专门领域的小语言是一中非常强大的概念。它能够自己定义高级的语言,比起用通用语言进行硬编码,它更加降低全局的复杂度。

它的核心其实还是抽象,在原有的继承之上进行了更层次的抽象,形成了更为高级的原语。直接使用这些原语。

设计微型语言的好的方法:

1、  预先认识到可以使用微型语言设计把编程问题的规格说明提升一个层次。跟通用的语言相比,这种方法更加紧凑,更具表达力。

2、  开发中意识到规格说明越来越像微型语言,可以考虑提取出来。

设计的关键是抽象出领域原语,然后在领域原语之上,构造合适的语法。

设备资源的成本变得越来越廉价,而程序员头脑中的空间越来越昂贵。

一个专用的解释性语言不仅可以作为从进程运行完成专门任务,也可以作为整个系统的核心。


微型语言,也可称之为领域专用语言(DSL)。设计这类语言最重要的就是抽象,要能够从这个领域中抽象出基本的原语,然后组织合适的语法。这些原语能够让我们在更高的层次上来思考问题,也让我们能够更多的关注问题的本质,而不是实现的细节。比如,汇编处理的是寄存器等硬件相关的概念,而c语言提升到了变量函数的概念,这种提升极大的提高了生产效率。

原创粉丝点击