Unix编程艺术——微型语言

简介:
微型语言:小型、专门应用领域特制、大量减少程序行数的语言。
     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. 语言还是应用协议,微型语言引擎是否可以被其他程序作为从进程交互调用。
本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2012/02/04/2338272.html,如需转载请自行联系原作者

相关文章
|
Unix Linux C语言
计算机操作系统实验一 Unix/Linux编程开发环境
计算机操作系统实验一 Unix/Linux编程开发环境
297 0
|
9月前
|
Unix Shell API
组合思维:Unix 哲学到底给现代编程带来哪些重要启示?
Unix哲学提供了一套简洁而强大的设计理念,这些理念在现代编程中依然具有重要的指导意义。通过模块化设计、组合工具、避免过早优化以及注重可复用性和可扩展性,开发者可以构建出更高效、更健壮的软件系统。希望本文能够帮助读者深入理解Unix哲学,并在实际开发中应用这些宝贵的设计原则。
192 25
|
算法 Unix 数据安全/隐私保护
Python编程--UNIX口令破解机
Python编程--UNIX口令破解机
142 1
Unix环境高级编程(第三版)中apue.h头文件及其依赖安装教程
Unix环境高级编程(第三版)中apue.h头文件及其依赖安装教程
470 0
|
Unix Shell Python
unix高级编程-fork和execve
unix高级编程-fork和execve
171 0
|
Ubuntu Unix Shell
unix高级编程-fork之后父子进程共享文件
unix高级编程-fork之后父子进程共享文件
162 0
|
Unix Linux
unix高级编程-僵尸进程和孤儿进程
unix高级编程-僵尸进程和孤儿进程
122 0
|
Unix Linux 调度
unix编程-fork
unix编程-fork
132 0
|
Unix
Unix高级环境编程
[07] Unix进程环境==================================1、 进程终止    atexit()函数注册终止处理程序。    exit()或return语句:        终止处理程序->终止处理程序->标准I/O清除->_exit()->进入内核。
1018 0