|
组合语言之艺术 作者: 朱邦复 第三节 处理对象
一、数据数据
数据数据率指可以输入、处理及计算的二进制数据,在工作过程中,安全性为第一
考虑因素,同时要兼顾精确以及完整性。此类数据一般说来数量都相当大,要妥善规划
数据长度,否则存贮空间会成为执行程序时的主要课题。
写作此类程序时,各种进位制的转换,显示区的定位,计算公式的处理等都应该作
为子程序,以便任意调用。
而真正关键问题却在于:数据的极限是否能够明确得知,在有限的范围中,绝对可
以设计一种「结构化」的规格,符合效率的需求。否则也应根据其规则性,配合程序的
特性,有效地加以处理。
二、文字数据
文字数据多为字符态,拼音文字所应该注意的是,字与字间的空间调整,齐头、齐
尾、齐中等变化,行末断字的规定,以及字体、字形、字号等。
中文尚有输入码、内码等处理问题。原则上,如果要考虑中、英文兼容,则应注意
屏幕上的字形显示与字码记忆区的位置,应占相同的比例。
目前,由于英文字、码不分,皆占一字符,屏幕上标准格式为25行80字,即采用所
谓「文字状态」。而中文字形至少要有16x 16点阵,且需用图形方式(也有采用文字态,
再加特殊硬件者,但成本偏高,有碍中文计算机未来发展)。因此,当采用640x 400或
近似规格时,中文字形与英文之比,约为2:1。
在此基础上,以二字符为中文的内码长度,是最常用的结构。但是随着技术及观念
的进步,有些英文系统已在使用二字符码,是则,中文有使用四字符的必要。
从另一方面来看,大陆所用的「国标码」,系抄自日本五十年代的 JIS CODE -日
本工业标准,最多仅能容纳8836个符号,其中「汉字」尚不足八千。而国标码更为精简,
收字6763个。中文源自中国,现在却借镜东洋的「工业标准」,且摇身一变,竟成为十
余亿人口的「国家标准」,真可谓每下愈况。无独有偶,台湾也有所谓的标准,BIG-5
的13,053字,虽然是国标码的两倍,二者终究是五十与百步之差而已。
为什么要订定这种「辱及先祖」的文字标准呢?谁又够资格订定中文标准呢?从事
计算机工作者不过是些「技术专家」,连计算机这一行所有的技术尚未必精通,更何况
隔行如隔山,竟然捞过界,捞到文字界这个相离十万八千里的领域去了。
文字是人类思想、文化的载具,先贤先圣们殚精竭虑所创造的文字,就是用来传达
他们对宇宙、人生的认知。我们后代子孙不肖,不能领悟其微言大义倒也罢了。对计算
机技术了解不足,没有能力令计算机应用中文,这也可以理解。但自以为是,依权仗势,
妄想偷天换日,仅用少数认识的文字,定为整个国家的「文字标准」,并强制国人接受,
这种颟顸就难以令人苟同了。
在运用中文时,由于各家发展的系统观念不一,有的甚至违法盗袭国外软件,为了
兼容起见,必须「削足适履」。原则上,中文内码将第一字符中第八位位设为一,得以
与「美国工业标准码」的ASCII (American Standard Code for Infor-mation Interch
ange)有别。
文字数据处理上最重要的工作,是排序的技术问题,国标码仅六千多字,却分为二
集,把常用字放在前集,次常用字在后部。但是这种顺序与使用人的观念毫无关连。除
了统计这种使用频率的学者专家外,不可能有几个人理解何字是常用字,何字不是。
于是,当我们要利用计算机的高速效率,将输入的中文加以排序整理时,国标码完
全起不了作用。也就是说,编码原为提高效率,而我们的编码只为了编码,与效率毫不
相干。
唯一的补救办法是,再建一个排序表,与国标码一一对照使用。
高科技界因为利润高、地位高,故而高论、高见特多,只是动起手来就难免「眼高
手低」,再不然则是「高论调、低效率」。
相信人人都有查字典或电话簿的经验,对用英文来说,是轻而易举,中文则麻烦多
多。国人只知抱残守缺,自卑自怜,而不求了解其因果原理。一般人如此倒也罢了,高
科技界倘如此,就有点说不通,甚至令人怀疑是否别具用心。
英文所以方便无他,因其字母具有直接索引的功能!中文则有前人订定了一套「部
首、笔画」的索引观念。这在过去信息不发达的时代,的确是个创见,也足敷应用,但
是现代与字母的直接索引相较,在效率上究竟差了一大截。
也有人认为,我们要维护中华文化,就应该死抱着古人所定的索引观念。这种说法
只有一点不足,就是忘了把大汉衣冠也穿得整整齐齐,甚至用文房四宝取代现代化事务
工具!
麻烦的是,「部首、笔画」是两种不同的索引观念,当没有时间因素介入时,孰先
孰后关系不大。可是用到计算机上,就必须定先后次序,否则碍难执行。
对姓氏笔画少的人,当然主张「笔画」优先,姓氏部首明显的,则主张先排「部首」。
这点不难理解,出席一个重要的庆典,或在报上亮相,人数一多,排名先后所涉及的利
益,至关重大,不能不争!问题在于,除了私利外,部首笔画这种没有效率的索引观念,
还有什么实用的价值?如果一定要保存,作为一种特例,当然可以。可是计算机所追求
的是效率,每个中文的部首和笔画,都需要建对照表,才能应用,字集越大,空间需求
越大,时间消耗也越长。
这还不说,索引不仅是提供给计算机用的,人更需要。仅以查电话本为例,「张伟
雄」这个名字,我们凭什么知道其前后的「定位」关系呢?表面上看来,只要查三次部
首及其笔画、以及数三次这三个字的笔画。而事实上,在查找的过程中,每遇到一个名
字,都要重复前述的手续,才能加以比较。
有人振振有词说,有些字一眼看过去就知道是几画!至少我个人没有这种本事。而
且根据统计,中文平均以十四画的居多,由九至十八画,就很难靠视觉分辨!再若人名
一多,视觉就很容易疲劳。
又有人说话了,现在是给计算机排序,与人不相干!殊不知字母排序可以立即执行,
而部首、笔画排序要多作三至六次动作,兹以先部首后笔画为例:
1,查本字之部首序值。
2,查对照字之部首序值。
3,比较两者之大小,决定是否需要再比。
4,再比时,查本字笔画数。
5,查对照字之笔画数。
6,比较两者之大小,以决定序位。
把这些步骤写成程序,以中文两个字符的内码计,(意思是说中文收字在两万以下)
如果用对照表的方式,空间当在64KB以上,速度则较英文慢约50倍。再若采用公式计算,
空间或能节省,但速度将慢上千、百倍之多。
这还是指两万字以下的情况,若采用汉字全字集,后果将不堪设想。所以「专家」
们一致认为,为了效率,字收得越少越好!
怎样才能算是真正的「中文计算机」?我十多年前所面对的「敌人」,是主张将中
文字埋葬掉。这种人不难对付,因为到底他们还是中国人,在民族大义的旗帜下,多多
少少心中也存着乐见中文计算机成功的意愿。所不同的,只是他们不相信有此可能罢。
现今的「敌人」则顽强得多,他们同样喊着民族大义的口号,又是公认的中文计算
机「专家」。更可怕的,目前使用中文计算机的人,不见得对中国文化有什么明确的认
识,有个工具打印一些文件,就相当知足了。于是,这些客户也在其主观的立场,认定
目前这种「市场占有率高」的半调子,就是「中文计算机」的标准!
是吗?如果中文字有六、七万字,而目前只能用几千、甚至一万多字,那么其它的
字呢?算不算是中文,如果算,为什么「中文计算机」中没有?这种计算机能说是「中
文计算机」吗?
有人又说了,没有关系,以后再说。怎么说呢?有一种方法,是将文字「分集」,
分成:常用字、次常用字、次次常用字、罕用字、罕罕用字等等。且不管是哪位学者有
这么大的学问去「分集」,我所知道的只是用这种方法,人无从记忆,中文排序的难度
又一倍一倍地加了上去。也难怪当初有人认为中文不科学,这不是明证吗?
其实,中文排序根本没有问题,我们利用仓颉字母作为索引,效率与英文相等,而
且收字可以高达千万个。至于记忆空间,一个字符都不需要。更有利的是,用作字典、
电话簿等的索引,一查即得。
内码是各个系统、根据其不同的需求、所订的一种数据形式,没有任何理由强制规
定。当然,如果内码种类多了,姑不论其编码的好坏,各个中文系统之间,自然会形成
难以沟通的障碍。于是有必要建立一种「交换码」,供不同系统的内码,统一交换应用。
这种交换码才有标准化的必要,而且订定之时,应该谨慎从事,要能容纳所有各家
系统所收的字,否则无从交换。
不论是哪种码,必然会有其特殊规定,在写作之前,程序员一定要设法找到该系统
所用的「码表」,否则无法处理。
三、图形数据
在计算机图形数据的处理方面,目前只有点阵及向量两种形式,前者即二进制数据
(Digital Data) ,后者则是绘图用的公式值。实际上,还有所谓「概念数据」的形式,
将视觉效应经过分析后,整理成为人能够理解的「概念」。这种概念数据非常精简,便
于贮存,取出后,再通过「概念作图」的过程,还原成为图形。
一个优秀的画家,必然有这种概念作图的能力,只要把画家的经验写成程序,将其
记忆的特征设计为数据,计算机必将忠实地执行,而且每次都画得一模一样。
如果是处理二进制点阵数据,不外乎是压缩、还原、截取及综合等几种简单功能。
绘图向量值则比较复杂,涉及计算、调整、变量、层次等多种技巧。
简单地说,绘图数据所考虑的,比文字数据难度高,要想得到理想的效率,最重要
的应是数据结构的定义,其次是层次的安排,以及特征性质的描述等。此外,输入变量
处理涉及人的应用方式,除了专业人员外,多数人尚未能适应这种新的绘图观念,经验
的不足,以致迄今尚未制作出理想的程序来。
概念绘图必将成为未来的主流,它不仅符合人类的认知习惯,且易于应用。只要概
念数据建得周全、完整,略为改变其中一些概念元素,就能得到各种结果。
四、概念数据
人类系以概念进行思考,并透过概念来认识外界。所以,对人而言,最有效的应用
方式,就是人已经熟知的概念。
概念并不是语言,而是组成语言的最基本因素。每一个人对外在世界的认知,都是
独一无二的,由于人类生存在群体空间里,需要经常彼此交换经验,于是利用听觉效应
表达概念,便产生了语言;利用视觉符号,则产生了文字。
前述的图象概念数据属于「具象」数据,除了具象以外,还有抽象的,包括主观的
感受、认知、欲望等等,因与主题无关,这里不加讨论。总之,这些概念数据的结构,
在计算机中必然是二进制的形式,只是因每一个设计者观点的不同,性能有所区别罢了。
直到如今,尚未见到实际应用概念数据的程序,但是它将成为计算机的基本结构,
却是指日可待的。
作为程序员,天天与计算机为伍,不能不知道计算机未来的趋势,更不能不多加努
力,掌握技术发展的机先。正因为概念数据尚未定形,人人都有相同的机会,做一个开
创时代的先河。否则,等到大局底定时,只有在后面苦苦追赶,由不得己了。
五、综合数据
功能较强的程序,很少仅具有单一的数据。尤其是「整合软件」越来越受到重视,
各种数据最终都将综合在一起。
综合数据有两种意义,一是人所认识的输入数据,一是计算机贮存的处理数据。
输入数据又可分指令及字符两种,在传统的观念里,不将指令视为数据,因为指令
一旦执行以后,即不再发生作用。可是,在桌上型排版软件广泛流行以后,为了控制版
面,必须将相关指令随数据同时贮存起来。而排版已经成为计算机重要的功能之一,所
以在未来的发展上,输入数据必须考虑到指令。
在整合观念中,输入数据应有统一的规定,亦即不论是何种性质的软件,其键盘的
应用、字符的定义等,都应该有全面的考虑。
关于数据内容,也有 ASCII字符及「世界字符」之争,对早期的英文系统而言,其
它文字无关紧要,所以没有适当的「世界字码」可供应用。然而,信息时代究竟不是英
文使用国家的专利,在各国觉醒之际,都憬悟到字码的重要。不论 ISO国际组织如何面
对问题,我个人不相信世界文字在其保留的、极为有限的「编码平面」上,能够发挥多
大的效益。充其量,可供一段时间内、某些商业上的应用而已。
我认为真正的信息标准,将是以各国文字为根本的自然语言,而目前最理想的方式,
则为多字符的字码方案。拼音文字系统以二字符为宜,除了可以同时应用世界各国文字
以外,并且符合当前微电脑的发展趋势。
在中文系统上,我们采用四字符的「自然码」,即将仓颉输入码压缩的方案。如此,
我们可以使用上千万个中文字,有人会说没有人需要那么多字,但事实上有谁能预料呢?
当初仓颉造字时,相信不会超过一千,如果他武断地订定「标准」限制后人用字,很难
想象我们的民族还会有什么文化?
台湾曾有专家对我这种意见,表示是「不合乎潮流,注定要失败」,然而到底是谁
不合潮流呢?四字符的微电脑已经到来了,而且被公认为今后的主流。在四字符的硬件
结构上,自以一次读取四字符、其次为二字符最为有效。所以这些观念已经落伍的专家,
还是去捞些钞票,把研究发展的工作,交给够资格的人去做吧!
|