走小字库道路,创中国人电脑

 

摘要:我们已有中国芯(CPU)、自主的Linux操作系统,但没有中文BIOS CMOS设定的提示只能用英文,不懂英文就很难操作,故不是汉字电脑,也不安全。不能要求学电脑都要一定的英文基础,都会英文是水平,都要英文是耻辱。中国要掘起,首先在经济上掘起,技术上掘起,而且要弘扬传统文化,依靠传统文化的优点才能真正掘起。所以我们必须研制真正的汉字电脑,完全不依赖洋文洋字母的电脑,中国人自己的电脑。

统一码Unicode竟采用当前汉字的大字库方法,这却是中文信息化种种问题的根源。他们也感到有问题,提出IDSLDS,但都不如我提出的笔画组字方法。实现万国文字兼容,只有走小字库道路。

关健词:汉字电脑,统一码Unicode,大、小字库,笔画组字

 

       一、至今没有中国自己的电脑

 

现在的电脑,虽都能处理中文,但都不是汉字电脑,最终都要出现英文,没有一点英文知识,是不可能完全掌握的。且不说学习难推广难,不能弘扬中华文化,单因使用外国的芯片和软件,可能隐藏窃听程序,也不安全。眼下我们已有中国芯(CPU)、自主的Linux操作系统,但还未见中文BIOS。上世纪热衷于搞软件汉化时,有搞DOS汉化的,就是没搞BIOS汉化,最终总不能摆脱洋字母。有人说,能学习计算机技术的,都有一定的英文基础,不如直接用英文,也可以和世界接轨。这等于承认比西方低一等。电脑是外国人发明的。有中国发明传到国外反被超过的事例,我们就不能在电脑上也超过外国人?中国要掘起,首先在经济上掘起,技术上掘起,而且要弘扬传统文化,依靠传统文化的优点才能真正掘起。所以我们必须研制真正的汉字电脑,完全不依赖洋文洋字母的电脑,中国人自己的电脑。

电脑只识电压高低表示的二进制数,最后按一定的编码显示出某字符,不同种类的文字,对它来说本质上是一样的。没有针打时,中小型计算机处理的是数字,极少量汉字以拼音字母缩写表示,没有什么不适。微机时代,汉字可以显示和打印了,文字处理成了主角。由于汉字多,字形复杂,字库大,而当时微机内存小,速度低,故汉卡盛极一时。汉卡及其他汉字系统都是外挂的,根本没改动BIOSDOS程序,仅拦截汉字内码的输入输出中断,另作处理而已。微机速度和内存不断提高,软字库就逐渐代替了汉卡。微软窗口软件一统天下后,中国人就只能搞搞“万码奔腾”了。虽然搞了中文CPU和中文Linux,但没有中文BIOS CMOS设定的提示只能用英文,不懂英文就很难操作。

BIOS含有1K左右的ASCII字库,而国标汉字库达256K,比BIOS程序的8-16K还大几倍。我们应该可以扩大BIOS或仍用外挂汉卡的方式解决,但不知道为什么没有这样做。不能要求学电脑都要一定的英文基础呀!这等于说:做中国人必须先学外国话。都会英文是水平,都要英文是耻辱。中文电脑应该可以不出现一个英文(拉丁字母除外,它作为拼音字母,已成为汉字的必要工具),使完全不懂英文的国人,也能完全掌握电脑,包括最基层的知识。真正的中国人的电脑,要有真正的中文CPU,真正的中文BIOS,真正的中文操作系统。这样的真正的汉字电脑,当然要能够运行现有的中文软件和英文软件,这不很困难。

 

              二、文字处理要走小字库方向

 

字数多不是BIOS不能汉化的原因,但却是中文信息化种种问题的根源。国际上统一码Unicode为实现万国文字兼容,竟采用当前汉字的大字库方法。它给每个字形一个4字节编码(UCS-4),码位达20亿,供各种文字申请占用。现已确定133个区,但还不到总码位的1/5504。其中中文最多,占18个区。由于各国文字的字符数多少不一,字符数多的文字,常有不同的层次,在不同的时间申请安排,就必然要相互犬牙交错了。这种混乱情况以后更要继承和发展,不可能纠正,因为码表一变动,过去信息化的成果就要付诸东流了。

大字库方法是不可取的。因为:不能一次收全所有字符,总会有缺字,建成后也难以适应文字的发展变化,故不稳定;安排字符编码、设计字形时易出错(原来两岸汉字编码不统一出现乱码,有了统一码,码是统一了,却又出现了“电脑错字”,而且是使用者发现错了也不能纠正的);不固化在ROM中,软字库易损坏,维护难;使用者必须靠复杂的输入法软件才能使用,而编研这种软件的困难,随着字数的增加而增加,字数一扩充,对扩充的新字,老输入法无能为力。硬件的发展虽然使系统中装全所有文字字库是可能的,可以阅读包含多种文字的文件,而写文章时要使用多种文字,即使有这样的字处理软件,恐怕也没几人用得了,因为要同时掌握各种文字的输入法。汉字已是“万码奔腾”,学会任一种汉字输入法都困难,要同时学会不同文字的输入法谈何容易。

大字库的另一个问题是效率低下。不同字符的使用频度相差悬殊,但目前信息编码没应用信息熵理论,而用等长码。UCS-4都长4字节, ASCII字符原只要1字节,也要4字节。实际上虽没让ASCII字符多化4倍,那是以增加其他字符的标志码为代价的。以UTF-8传送UCS-2的字符为例:基本拉丁字符作为单字节传送的特征是最高位为0,其他传送字节高位必须为1。以前汉字国标码,两字节高位也都为1,因高低字节没有区别标志,如果文件中间丢了一个字节,会使前字的低字节和后字的高字节併成字,使后面的文字面目全非。所以UTF-8中要用首3位110标志第一字节,用10标志第二字节,这样一来,2字节只能传1920种UCS-2字符。奥利雅文(Driya)以后各区字符则要用3个字节来传输了,这时第一字节标志是1110。不幸得很,我们的汉字都要3字节。

统一码本想解决一切字符,特别是所有汉字的使用,但不管是7万或10万汉字库,仍会碰到缺字。于是出现IDL(象形文字描述序列)和CDL汉字描述语言。前者用于由几个字根组成新字,只要在字根序列前加上相应的结构码。后者则在每个字根或笔画后加上两字节指明它的左上角和右下角,允许嵌套,最终都可由笔画组出。1985年我就利用字根结构特性的稳定,一般可免去结构码。而到2003年解决笔画组字时,使用层积理论,可自动计算出笔画及字根的位置,不必加两字节参数。具体的组字问题,将另文阐述。总之,目前微机的速度,使笔画组字可实用了,汉字系统只要50个左右的笔画、少于一千个字根就可以了,也可加点常用字,就是说可以走小字库道路。我们应去抢注Unicode中亚美尼亚文到奥利雅文两区之间的1360个空码位,作为常用字和字根区,建立小字库中文系统。小字库汉字的内码当然不等长,如果该区安排了600个高频字,使用总频度就达80%以上,它们的内码和UTF-8传输码都只要2字节。余下的大部分汉字只由两个字根或和部首组成,长4个字节。只有极少量汉字化费大一些,影响很少。

既然汉字能像拼音文字那样可由笔画组成,我们能不能再从所有字母和笔画中提取更少量最基本的“元笔画”,只要这个元笔画库,就可组出世界上一切文字。当然,不同文字可以有一套自己的字母、笔画或字根,学会该文字的人能使用它们。不懂该文字的,可以只用元笔画依样画葫芦地拼出,最多字形不好看或不标准罢了。我们应该研究这样的系统,让电脑也像普通笔一样,可以自由地用键盘写出各种字形,而少受字库内容的限制。汉字研究出小字库方法,将是对世界互联网和文字处理的一大贡献。