找回密码
 注册
关于网站域名变更的通知
查看: 265|回复: 1
打印 上一主题 下一主题

学习一下Unix编程中的微型语言

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-14 11:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
7 l5 ]5 @+ V( Q  d0 ]- F
微型语言:小型、专门应用领域特制、大量减少程序行数的语言。8 E% T) ^0 |2 `1 H
     1. 使用微型语言把编程问题的规格说明提升一个层次,更具表达力,更紧凑;
* L6 a5 b) K7 ~0 m     2. 规格说明文件越来越像微型语言。$ i0 s8 t3 a9 m; g8 G' F1 z
+ S/ K) B! J  G5 w4 @
理解语言分类法2 o- Y" Y2 {9 Y/ b: o' r3 ]
5 b+ X( V# ]# l% y( @" z

/ u# r( {/ F( C$ Q! O9 O" ?8 U
  F9 i7 w* h4 W- U7 M案例分析8 X% k, \3 I+ O% M

, G6 \+ K( @4 m. I/ y$ I9 I- `- p* Usng: 透明,结构化的数据文件使得相应的编辑、转换和生成工具无需要知道其他方的设计假定。( v" ]1 }% S/ I0 Q  a
regexp:Glob表达式,基本正则表达式,扩展正则表达式,Perl正则表达式。正则表达式是微型语言能够多么简练的极端例子。6 v4 R( N; ~4 s3 j) K* T$ w
Glade:X,GTK(和Qt是两个流行开源X工具包),说明GUI窗体及属性、代码生成。
9 D+ Q' c* a: H/ M; pm4:扩展字符串,键值对。
+ [  Z' B/ L3 {* a6 zXSLT:复杂,但是仍然是微语言:有限的分类,不包含数组和数据结构;有限的接口。
/ M; f+ ~5 ], ?* ?5 ?( Y  vtroff:排版格式器。9 y& l, x3 m9 \7 @( B9 m2 o3 X
fetchmail:语法糖导致分号癌,谨慎使用,防止晦涩多余帮助。
! S/ B# z8 c" V- S5 D! B* Kawk:内嵌在脚本中使用。$ e& F$ v) s0 E, ?# b3 i0 P
PostScript:排版,堆栈式语言支持紧凑、经济的编码,但也非常难读。
0 n. l" ^: j& i, S5 cbc和dc:无限精度算数。/ ?( @" f% ]; z5 G3 g+ {; C
Emacs Lisp:emacs是围绕lisp的语言构建而成的,原语既可以说明编辑缓存的动作,也可以控制从进程。
+ P5 u5 Y) I! F% }javascript:无需真正进入但可尽量接近的通用语言;客户端javascript及其通过单个DOM对象的浏览器环境结合是个不错的设计。! y0 t5 J1 C3 d% v
0 P& f3 o/ h- U4 `3 `* @7 e  U* h# U7 F
: w# O& C6 ^% z3 p0 X; N/ W5 x
设计微型语言2 m- |3 |" r6 P: k3 T

  }0 W7 \8 O  a6 w' [1. 简单。如果出于不便或者安全的考虑,可以使用数据结构代替微语言。或者利用沙盒化来简化设计,提高安全性。! b# P" r7 W% t. h
2. 自顶向下。, a0 g, w' m$ r7 Q; d
3. 扩展和嵌入语言来实现微语言。# D0 t' e! G$ d) a; n% H: ?
4. 编写自定义语法,yacc和lex是重要工具。# O4 t0 B% s/ J, [& g- ~. ?/ D4 \
5. 慎用宏,防止滋生bug;比如运算的优先级。6 {' r7 j8 R; a) r) o5 ?4 q- M. K7 Z
6. 语言还是应用协议,微型语言引擎是否可以被其他程序作为从进程交互调用。
5 {4 o" S3 l$ }8 \! Q4 y& G$ |  e8 M6 g

# q! W8 H- P$ X0 w4 `
& b& C' p5 }. Z- w1 X7 D3 @

该用户从未签到

2#
发表于 2020-1-14 19:59 | 只看该作者
Unix编程中的微型语言
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 19:45 , Processed in 0.171875 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表