Unix编程艺术——微型语言
2012-09-29 10:00
218 查看
微型语言:小型、专门应用领域特制、大量减少程序行数的语言。 1. 使用微型语言把编程问题的规格说明提升一个层次,更具表达力,更紧凑; 2. 规格说明文件越来越像微型语言。
理解语言分类法
案例分析
sng: 透明,结构化的数据文件使得相应的编辑、转换和生成工具无需要知道其他方的设计假定。
regexp:Glob表达式,基本正则表达式,扩展正则表达式,Perl正则表达式。正则表达式是微型语言能够多么简练的极端例子。
Glade:X,GTK(和Qt是两个流行开源X工具包),说明GUI窗体及属性、代码生成。
m4:扩展字符串,键值对。
XSLT:复杂,但是仍然是微语言:有限的分类,不包含数组和数据结构;有限的接口。
troff:排版格式器。
fetchmail:语法糖导致分号癌,谨慎使用,防止晦涩多余帮助。
awk:内嵌在脚本中使用。
PostScript:排版,堆栈式语言支持紧凑、经济的编码,但也非常难读。
bc和dc:无限精度算数。
Emacs Lisp:emacs是围绕lisp的语言构建而成的,原语既可以说明编辑缓存的动作,也可以控制从进程。
javascript:无需真正进入但可尽量接近的通用语言;客户端javascript及其通过单个DOM对象的浏览器环境结合是个不错的设计。
设计微型语言
1. 简单。如果出于不便或者安全的考虑,可以使用数据结构代替微语言。或者利用沙盒化来简化设计,提高安全性。
2. 自顶向下。
3. 扩展和嵌入语言来实现微语言。
4. 编写自定义语法,yacc和lex是重要工具。
5. 慎用宏,防止滋生bug;比如运算的优先级。
6. 语言还是应用协议,微型语言引擎是否可以被其他程序作为从进程交互调用。
理解语言分类法
案例分析
sng: 透明,结构化的数据文件使得相应的编辑、转换和生成工具无需要知道其他方的设计假定。
regexp:Glob表达式,基本正则表达式,扩展正则表达式,Perl正则表达式。正则表达式是微型语言能够多么简练的极端例子。
Glade:X,GTK(和Qt是两个流行开源X工具包),说明GUI窗体及属性、代码生成。
m4:扩展字符串,键值对。
XSLT:复杂,但是仍然是微语言:有限的分类,不包含数组和数据结构;有限的接口。
troff:排版格式器。
fetchmail:语法糖导致分号癌,谨慎使用,防止晦涩多余帮助。
awk:内嵌在脚本中使用。
PostScript:排版,堆栈式语言支持紧凑、经济的编码,但也非常难读。
bc和dc:无限精度算数。
Emacs Lisp:emacs是围绕lisp的语言构建而成的,原语既可以说明编辑缓存的动作,也可以控制从进程。
javascript:无需真正进入但可尽量接近的通用语言;客户端javascript及其通过单个DOM对象的浏览器环境结合是个不错的设计。
设计微型语言
1. 简单。如果出于不便或者安全的考虑,可以使用数据结构代替微语言。或者利用沙盒化来简化设计,提高安全性。
2. 自顶向下。
3. 扩展和嵌入语言来实现微语言。
4. 编写自定义语法,yacc和lex是重要工具。
5. 慎用宏,防止滋生bug;比如运算的优先级。
6. 语言还是应用协议,微型语言引擎是否可以被其他程序作为从进程交互调用。
相关文章推荐
- Unix编程艺术——微型语言
- UNIX环境C语言编程(10)-守护进程
- unix编程艺术中的17点编程原则--设计开发者的至高准则
- UNIX下C语言编程动态库的生成
- unix编程艺术中的17点编程原则--设计开发者的至高准则
- UNIX编程艺术学习笔记-1
- unix编程艺术中的17点编程原则--设计开发者的至高准则
- java语言的科学与艺术-编程练习---简单的四则运算计算器
- Unix编程艺术阅读笔记版
- unix编程艺术中的17点编程原则--设计开发者的至高准则
- Unix编程艺术:透明性
- R 语言编程艺术笔记
- UNIX环境C语言编程(5)-系统数据文件
- java语言的科学与艺术-编程练习7.1
- java语言的科学与艺术-编程练习11.1
- Atitit 艺术与编程艺术 项目工程艺术 1. 艺术可以分为造型艺术、表演艺术、综合艺术和语言艺术四大类。 1 2. 造型艺术 10 2 2.1. (一) 绘画和雕塑 11 2 2.2. (二
- 从今天起,踏上go语言编程艺术之旅
- [UNIX编程]perl语言初接触
- UNIX编程艺术学习笔记-2
- java语言的科学与艺术-编程练习6.5