BBS水木清华站∶精华区
发信人: camera (RedSnow 被迫节网), 信区: CompExpress
标 题: [转贴] 计算机技术的抽象度(2)
发信站: BBS 水木清华站 (Sun Jan 11 16:27:22 1998) WWW-POST
送交者: 看得贯 于 December 21, 1997
人的语言是有最高抽象度。人的思想,真理也许有
更高抽象度,但凡不能用语言表达的,都不在讨论
范围内。
计算机技术带来的抽象度从逻辑上说是很大的。最
老的从机器语言到汇编,再到高级语言。这奠定了
绝大部份人使用计算机的基础。再往后,定义语言
的发展。这也是每一个人都受惠。可以用一个例子
来看用定义式的语言好处。
定义语言最广应用的一个例子,可以说是编辑本身
的。编辑的三步曲是:语言分析,语句解析,和语
句到目标机器语言的翻译。语言分析其实就是语句
的定义。一个受过训练的人,只要一天就可以完成
用状态机器写的定义式的语言分析。用LEXER翻译
成C程序后,长度得变长10-30倍。语句解析是三部
中最难的一步。语句解析的主体也是定义式的用
背景独立语法写成。在定义明确情况下,一周也可
以完成。用PARSER翻译成C程序后,长度增长也在
10-30倍之间。最后的目标语言翻译是机戒性的,不
用定义式的。
从这个例子可以看到:
1。定义语言可以使编程简化。在长度上10倍以上的
简化一定不会是从程序员的水平来的。短程序写的
快,出错少。
2。定义式的写法本身更严密,更不易出错。编辑的
错误比任何程序的错误都后果严重。用C直接写的编
辑一定没有人敢用。
定义语言也有不足
1。写起来难。这不仅是风味,而且是思想方法。这
使它较慢被接受。
2。直接运行慢。
为克服2,日本曾花上百亿美元,研制所谓‘第五代
智能计算机’,但由于薄弱的工业和科研,较小的
市场,最后归于失败。
定义式语言主要有逻辑和功能语言。最流行的有
prolog, lisp, 和ML。
人们对抽象度的要求现在更多的是通过‘积累’式
的途径来实现。这是C的方法。
具体讲,C本身的抽象度很低。C甚至可以和硬件打
交道。最有名的是UNIX操作系统几乎全C(除约800行
汇编)。后期的PC的BIOS也是用C写。C使其成倍大大
降低。如在80年代下,BIOS源程序才几百刀,卖一
台机器才给2-4刀。而且随便改,随便引用。
C的抽象度是靠预先写的子程序来实现(library)。这在
开头看起来不如定义式吸引人:子程序库会很大,
而且这不是一劳永逸的办法。但实践证明这种却有
效,而且演变到重新定义语言,使语言本身就有很
高的抽象度。
--
生活太复杂 答案很简单
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 202.99.58.59]
BBS水木清华站∶精华区