微型语言的设计——unix编程艺术学习笔记
来源:互联网 发布:iphone蜂窝数据3g 编辑:程序博客网 时间:2024/05/01 01:56
“软件的缺陷率和使用的语言无关。”
我曾经设计过一个机遇xml的微型语言。另外,xtest项目让我向设计一个全新的,类似于真正语言的语言,而不是简单的标记语言。
在学习这一章的时候,结合整xtext一起学习一下。
发现xtext有一个问题,它只可以运行的jvm上。我想设计一种DSL,我可以自己编写它的解释器。
开始学习:
代码量越少,出错的机会就越少。
专门领域的小语言是一中非常强大的概念。它能够自己定义高级的语言,比起用通用语言进行硬编码,它更加降低全局的复杂度。
它的核心其实还是抽象,在原有的继承之上进行了更层次的抽象,形成了更为高级的原语。直接使用这些原语。
设计微型语言的好的方法:
1、 预先认识到可以使用微型语言设计把编程问题的规格说明提升一个层次。跟通用的语言相比,这种方法更加紧凑,更具表达力。
2、 开发中意识到规格说明越来越像微型语言,可以考虑提取出来。
设计的关键是抽象出领域原语,然后在领域原语之上,构造合适的语法。
设备资源的成本变得越来越廉价,而程序员头脑中的空间越来越昂贵。
一个专用的解释性语言不仅可以作为从进程运行完成专门任务,也可以作为整个系统的核心。
微型语言,也可称之为领域专用语言(DSL)。设计这类语言最重要的就是抽象,要能够从这个领域中抽象出基本的原语,然后组织合适的语法。这些原语能够让我们在更高的层次上来思考问题,也让我们能够更多的关注问题的本质,而不是实现的细节。比如,汇编处理的是寄存器等硬件相关的概念,而c语言提升到了变量函数的概念,这种提升极大的提高了生产效率。
- 微型语言的设计——unix编程艺术学习笔记
- Unix编程艺术——微型语言
- 接口设计评估——unix编程艺术学习笔记
- Unix接口设计模式——unix编程艺术学习笔记
- 【Unix编程艺术】第8章 微型语言
- 程序库和面向对象语言——unix编程艺术学习笔记
- 程序库,面向对象语言——unix编程艺术学习笔记
- 14语言:C还是非C——UNIX编程艺术学习笔记
- 模块化编码——unix编程艺术学习笔记
- 透明性:来点光——unix编程艺术学习笔记
- 性能优化——unix编程艺术学习笔记
- 谈谈复杂度——unix编程艺术学习笔记
- 4.3软件是多层的——UNIX编程艺术学习笔记
- 软件的适度规模——unix编程艺术学习笔记
- UNIX编程艺术学习笔记-1
- UNIX编程艺术学习笔记-2
- unix编程艺术笔记
- 《unix编程艺术》笔记
- Linux operating system (Ubuntu) 学习-1
- 数据结构和算法之C#
- [SQL]SQL语句之添加主键和增加字段
- talend+教程网址
- What's the difference between declaring and defining something in C and C++?(C和C++中,声明和定义的区别)
- 微型语言的设计——unix编程艺术学习笔记
- 3 代码是如何工作的
- SQL表之间复制数据、选出随机几条数据、删除重复数据、取得自增长列等操作
- asterisk agi For Perl
- 大小端及内存对齐问题细议
- Java线程:状态转换,同步与锁
- Java 内部类学习
- 线程的状态、调度及线程的同步与锁
- 关于List的add方法与addAll方法的区别