一、结构基础
物质文明之有今天的成就,是因为人类掌握了物质的基本结构。物质的种类无穷,但是却都由基本元素交互组成,只要根据一定的法则,就能得到一定的结果。
电脑技术虽然日新月异,应用软件的变化也无止无尽,而其基本因子却非常有限。各种微处理器的组合语言,正是电脑软体的基础结构,任何要通过软件以完成的动作,都是经由组合语言的指令群,逐步执行的。
因为电脑结构复杂,各种任务分工极精,即使是一位资深的高级程式师,终其生也不过局限在若干固定的程式中钻研,很难以宏观的立场认知全貌。再加上市场需求的压力,局外人莫名其奥妙,局中人又忙得不可开交,所以还没有任何人能作出全盘的评估。
组合语言首先成为被误解的牺牲者,包括应用它的系统工程师在内,都一致认为它「难学难用」,(中文也是一种组合形式的应用,其所组合者是人的概念。无独有偶,人们在不求甚解之余,都视之为畏途。)事实上大谬不然,现在是科学挂帅,而科学的精义就在于系统的分类和应用。问题是我们能不能归纳出一些学习、应用的法则,将组合的过程化繁为简,以符合各种应用范畴。
二、个人体验
我个人对此感受极为深切,我原是个十足的外行,1978年第一次接触电脑,曾以不到两周的时间,就学会电脑操作,并应用「培基语言」设计完成“仓颉输入”程式。当时我认为培基语言易学易用,是电脑上最好的工具。
后来,我开始用培基语言设计“仓颉向量组字”程式,每秒可生成两个字,当时与我合作的宏基公司建议我采用组合语言,他们说组字程式速度要快,培基语言不能胜任。如改用组合语言,效率可提高十倍,由此开始了我与组合语言的不解之缘。1979年9月我们正式推出了由国人自行设计、具有完整的电脑功能、可运用数万中文字的“天龙中文电脑”。
宏基公司动用了三位资深工程师,采用 Z80 MCZ系统,以六个月的时间完成了向量组字及系统程式,记忆空间占60KB,处理速度每秒约组成30字。
这是我首次发现到组合语言的威力,深究之下,才理解到电脑的全部工作原理。简单说来,组合语言就是组合电脑所有功能的控制指令,利用它,就可以直接控制电脑。
其他高阶语言,只是让人省事,用一些格式化的手续,把人的想法化为过程的指令,这种情形就相当于为了迁就开车的人,建了密如蛛网的高速公路。本来走路只要几分钟就可到达的地方,以车代步的结果,反而需要耗费半个小时。
1980年,我决定自己动手,又重新设计了一套字数较多,字形较美观的组字程式。只用了三个月的时间,结果不仅记忆空间缩小了三分之一,速度也快了十倍,达到每秒 300字。这个产品,就是1苹果机上用的「汉卡」。
1983年,再经分析,我发现以往写的程式很不精简,技术也不成熟。我坚信中文字形在电脑上的应用,将是中国文化存亡兴衰的根本因素,不仅值得投注自己的时间及精力,且也有此必要。所以我又拋掉了一切,重头设计,加入更多的变化参数,并根据人的辨识原理,设计成第三代至第五代等多种字形产生器。每一代之间,速度都明显地提高,功能也不断加强。在这样一再重覆的摸索中,尝试了各种可行的途径,充份认识了组合语言的特性及长处。
由于组合语言灵活无比的特性,我发现它就如同画家的画笔一般,只为了牟利,可以用它画成各种廉价速成的商品;一旦投入自己的理想与心智,画笔就不再只是一枝笔,而成为人心与外界的界面,画出的作品立时升华成为艺术,进入一个更高的境界!
1985年,我再次重新设计规划,采用人的智能原则,把人写字、认字的观念化为资料结构,程式只是用来阐释
资料、控制电脑的界面。该字库的字形可做到无级次放大缩小,字体、字型皆能任意变化&nb