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水木清华站∶精华区