中文電腦漫談
目錄
序 再序1 電腦闖進了人類的領域2 你了解電腦嗎?3 電腦的身世4 電腦的基本原理5 中文電腦在那裡?6 讓我們來駕馭電腦7 未來世界8 我們能忽視中文電腦嗎?9 可悲的一頁附錄:中文電腦的心臟……中文字形產生器的製作方法 正文
序 再序
再序
本書出版於1982年元月,是用電腦打印者。次年,作者遭到「黑官迫害」,逃奔美國。及後,微軟大軍壓境,攻城掠池,中文資訊遂降格成為附庸,聊備一格。
1999年,作者轉戰香港,任職文化傳訊公司,發表「漢字基因」理論。2009年,沈紅蓮根據漢字基因完成「理解系統」,能經由漢字的輸入、以理解字裡行間的意義。為此,我們又設計出「圖文系統」,在文字的理解下,輸入中文劇本、就可以直接輸出動畫影片。
此一劃時代的重大工程,我們只用了十五位工程師,費時五年。全部電腦程式皆用組語言寫作,理解系統只用了256KB,而圖文系統則採用C語言,約256MB大小。
山不在高,水不在深,且不論中文電腦是何方神聖,人只要能盡到自己的責任,勝似神仙。
朱邦復序
序
國家的強弱,民族的盛衰,端視其知識水平而定。古人有言:「十年樹木,百年樹人」,人的行為決定於觀念,人的觀念決定於知識。
縱觀歷史,我國所以積弱不振,乃新知識之不能普及。知識不普及導致觀念陳舊閉塞,因果相循,自棄於時代之門外。
再若進一步探究,為何知識不能普及?無他!傳播知識運用知識之現代化工具缺乏,工具缺乏則效率極低,效率極低則窒礙難行。
零壹公司成立於民國六十九年五月,矢志以研究改進中文資訊工具為唯一目標。成立之先,本人已發表「倉頡中文字母輸入法」以及「向量組字法」,成功地將中文文字應用水平提昇與拚音文字相若。公司成立後,除將中文輸出入技術繼續改進外,並發展中文電腦程式語言、中文文字處理系統、中文資料庫等,唯因技術在發展中,尚不成熟,致鮮為人知。
現今政府大力推廣資訊教育,誠為明智之舉。但若大家誤以為世上只有拚音語系夠資格談資訊,那就大錯而特錯了。由於專家學者都是西化教育之科班出身,只知有英文資訊、而不知有我們這些出土不足一年的”中文資訊”。而政府政策之制定,必出自學者專家之手,屆時若有遺珠,為憾大矣!
我們人微言輕,無資本、力量,只憑滿腔熱血,除了爭取有民族意識的大眾支持之外,別無良策。特此,以我們僅有的財力、用我們赤手所製作的中文電腦來編排印製本書。而且將以最低廉的代價,希望將我們微弱的呼聲傳達到您的手中,希望您與我們共同為中華傳統文化的前途努力奮鬥。我們可以證明,中文在資訊的應用上,絕對不亞於任何文字。
零壹叢書在目前的計劃中有三類:
一、中文電腦概念及理論介紹。
二、中文電腦應用程式,包括由國中至高中的教學題庫、智力遊戲、以及中小企業商用程式。除書籍外,其程式將存放錄音帶中,一併發行。
三、中文電腦之習作,原理及應用,硬體套件正與廠商洽談中,即將整理發行。
但願我們能撐到中文電腦價值被肯定的那一天,也但願能獲得您的支持與鼓勵。
朱邦復19820110
1 電腦闖進了人類的領域
一九六九年,美國報紙上登出了一篇令人啼笑皆非的消息。有一位工程師,舉槍將他的上司打死,然後赴警局自首。警方慎重其事地作了筆錄調查,隨即赴現場驗明正身,卻發現「死者」是一台電腦。
這位工程師聲稱,電腦雖然不是人,卻比人更可怕。電腦不僅工作效率高,從不犯錯,而且從不要求加薪。以致於令他工程師的地位一落千丈,忍無可忍而出此下策。
一點也不錯,在六十年代末,還在大型電腦當道的時代,電腦的確影響了不少人的就業。但是它既是那樣忠實可靠,唯唯諾諾,沒有個一老闆不窩心。此外,電腦也可以事實證明:它能提高工作效率,能增加更多的就業機會,促進社會的繁榮。於是它就一步步地侵入了人類的地盤,具人類正義的人士不由得紛紛提出告:終有一天,電腦將會取代人類,成為地球的統治者。
假如各位喜歡看電影,一定忘不了「2001年」這部影片。那年它挾著轟動的票房,由美國飄洋過海來到國內,也帶來那被電腦駕駛到另一個里程碑的太空船。
雖然在那艘太空船中,電腦的各種記憶模皮己被倖存的男主角所拆除,以至回返到牙牙學語的「兒時」。但是情勢比人強,時代己經由人開始運用工具(第一個里程碑,在人們用骨頭打架時),進而統治了地球;再經征服太空(第二個里程碑,在登陸月球),而遨遊時空邊際之時,人與電腦的鬥爭終於爆發了。然後,另一個里程碑在似真似幻中到臨,充分顯露了人類的不甘心與無可奈何,卻又漠然再加上頑抗的各種複雜交織的情緒。
電腦真能取代人類嗎?有人說:「當然」,有人說:「不可能」,有人痛心疾首,有人漠不關心。若問我佛,佛必曰:「不可說,不可說…」。至於在下,且聽我細細道來。
2 你了解電腦嗎?
在談到正文之前,我還要說明一下。你千萬不要希望在這本書裏找到一幅很清晰明白的畫面,好讓你徹底瞭解電腦是什麼!因為這是不可能的,倒不是電腦太精深太複雜,反而是它目前太幼稚、太單純。它幼稚得只能做最起碼的工作,單純得只是幾個機構所結合而成。
有人不以為然,把電腦奉為神祗,捧得高高在上、深不可測。其中的原因,卻正是由於它太單純、太平凡,人人可學、人人可自行設計。只要掌握了其中的訣竅,你也可以設計一種電腦。既然是你設計的,對別人來說又是諱莫如深,別人要花不少功夫才能夠瞭解如何使用它。
舉個簡單的例子來說,且假定我們沒有任何材料學、結構學知識,讓我們飄流到一個荒島上。島上有很繁茂的樹木及豐富的果實,而我們也幸而帶了鋸子,釘鎚等工具。這時,要生存下去,首先就必須建造一些房子以便居住。
只要有必要,我相信你一定有這種能耐,而且人人都有。有人喜歡標新立異,有人有獨特的見解及需求,有人能採取各家之長,也有人一味地模仿… 。
房子造成了,保證沒有一戶與別人的完全一樣。外觀、結構、門戶、隔間,各有各的規格與應用方式,五花八門,甚至希奇古怪。
好了,如果你自己沒有蓋房子,或者是你的家人太多不夠用,「買」一幢現成的房子有何不可?於是,你開始參觀那些「房子」。如果建造人恰巧在旁邊,一一為你解說,或許你不至於太困惑。萬一那時「房東」到海邊去獵「艷」,再不然他想發大財,忙著「搶建」。你一時找不著他,很可能你會不得其「門」而入,也可能被你矇到了大門。一進去,小心腦袋碰到樹枝,再不然一腳踏到地洞裏。別忘了,島上是沒有電燈的!就算是白天,外面也比裡面亮,你想不摸瞎也不行!
這和目前的實際情況相若,「房地產」生意太熱絡了。人人都忙得不亦樂乎,沒有一家電腦公司可能派員與你奉陪到底。除非你已經是客戶,那種情形不一樣,因為已經住進了「套房」。對一個只是參觀的人,誰曉得你是不是「產業間諜」?誰願浪費那個工夫?
瞭解一幢房子不難,再到第二幢時就增加了些新玩意。說不定有人在房門上面吊上了一塊大石頭,不小心你拉動一根繩子,石頭就碰然墜地!那是防盜用的!有人把廁所建在室外,很衛生,但不方便;有人建在大門邊,方便,但是不雅;有的在臥室裏,甚至有人在地下挖個洞。
沒有什麼奇怪,我們今天住的房子有規有矩,那是經過了專家們幾千年來研究改良的結果。所以不論什麼房子,門歸門,戶歸戶,幾房幾廳,一目瞭然。但是,假如你有機會參觀一下「古今中外房屋大展」,會發現門戶的觀念並非那麼統一規律,遑論其他了。
電腦正是如此,儘管今天它已經幫助人類登上了月球,那並不是「它」有多了不起,而是人運用它的巧妙。大家美其名為尖端科技,也不過因為它剛剛誕生。任何新生的東西都比較容易得寵,(當然也容易受到排擠,至少電腦的尷尬期是過去了。)何況它是應運而生。正好在這人口爆炸,人類已經面臨手忙腳亂的關頭,有個代勞費神的傢伙。誰曰不可?
可是,我們如果在一百年後,再來看今天的電腦,那麼前面舉的例子就恰當不過了。至少到那一天,電腦會如同今天我們的住屋一樣,有個原則可循。
以美國為例,大大小小的電腦公司,少說也有幾千家。至於電腦,在商場上有名有姓,有板有眼的已不下百餘種(這只是指商用及家用電腦而言,工業控制用的電腦以及軍用電腦等恕無從統計。)至於一些實驗產品或者是沒有經濟後盾的「車房」產品(別小瞧車房產品,現高踞家用電腦市場首座的蘋果牌電腦,就是在車房中做出來後,寄放在商店中銷售起家的),更是不計其數。
這麼多種類不同的電腦,都是用幾種基本素材及工具所架構起來的(後面將對這些素材一一介紹)。沒有一定法則,沒有不變的機構,各顯各的神通,各有各的勝場。這時你一定會懷疑,為什麼你所看到的似乎沒有什麼分別呢?是不是我存心騙你?
當然,這是觀點不同所致。比如說房子,不論怎樣怪,總得有個房子樣兒。電腦亦然,那個樣兒就是你認為很像的一部份。此外,還有一點你可能不知道。在國內,我們的視界有限,各廠商所引進的商業化產品,已經經過「客觀」的選擇。相信你所叫得出名字的廠牌不會超過四十種,那些怪得你認為不像「電腦」的電腦,早已被三振出局了。
其次,等你一走進「房子」想進去玩玩,可得小心點。即使你已經對電腦相當瞭解,甚至已是位專業的電腦從業人員,一碰到一個新產品,必然先敬鬼神而遠之。如果不事先問問門道,入境隨俗,可能就會「陰溝裏翻船」。正因為想法不同,設計的方法不同,「為什麼要把玄關設在廚房旁邊呢?為什麼要把天井放在臥室中呢?」不為什麼!設計者喜歡這個調調兒!
電腦的使用方法很多,有的開機就可以用;有的要先把「操作系統」搬出來;有的還要接很多附屬設備。操作系統目前已廣為流行的就有十多種,每一種又有很多「善意」的修訂。公認可以通用的高階程式語言中,僅以「培基語言」為例,就有好多種,每一種也有很多不同的功能容量… 。
別提了,假如你知道同一類型廠牌的電腦,還有第幾代之分,你可能都被嚇得不敢用電腦!這是實情,正因為電腦還年輕,尚沒有定型成熟,易學易懂,人人都可以軋上一角。在這個天地裏,技術的更新由廿年前的十年一代,至今已是三年一代了。意思是說,你學會的技術在目前只能用三年,如果你不再進修,新東西出來你就落伍了。
技術更新的速度加快有好有壞;好的一面是要你肯下功夫,要迎頭趕上時代不難,壞的一面是與經濟法則違背。一套系統還沒有充份發揮功能,新的又問世了,你該怎麼辦?還有就是人才與教學,好不容易十年寒窗,苦學有成,博士帽戴在頭上還是熱的,滿腹經綸已經成為「昨日黃花」。(幸而在我國沒有這樣不合「人情」的現象,我們的博士從漢武帝設置以來,就是終生職的。)
外國人是勞碌命,不論電影明星、運動健將、工商從業人員、學者專家,沒有任何一人妄想捧個金飯碗抖一輩子的。要生存就要求進步,要求進步就要不斷學習,不斷自我突破。
贊不贊成是一回事,現實是另外一回事,你不是想要瞭解電腦嗎?何苦?玩玩電動玩具算了罷!
話說有位美國社會學者,為了要想瞭解原始人類的行為及心態,特別選了一個最落後的民族去作研究……。且假定這地區是在非洲,他學他們的語言,吃他們的食物,住他們的窯洞,以求混入他們的社會圈中。
這位老美剛學會語言就覺得很奇怪,老非們都不呼其名而叫他「笨神」,他不知其意,好在不傷大雅,也就習以為常。彼此的界限漸漸消除,老美逮到了一個機會,土酋長灌了幾碗「約翰走路」,話匣子就打開了。
「笨神呀!你們什麼都有,就是沒有腦筋!」酋長的滿腔熱腸地開導這位老美。
老美心想,說不定今天大有斬獲,學學這種古老的智慧。「那就麻煩酋長大人告訴我吧!」
酋長一看四下無人,悄悄地向老美使個眼色,然後手執火把,鑽進一個秘密的小隧道。老美一看,可真傻了眼,做夢都想不到!
裡面計有缺了一隻右臂的塑膠模特兒一個、十二吋彩色電視機一台、電風扇一具、牛仔褲、各式洋裝、幾瓶可樂、一座石膏的自由女神…,最妙的是被塗了黑油的瑪麗蓮夢露招貼!
老美楞住了,他說不出自己的感受。半晌酋長巡視了一週,得意洋洋地說:「你看,你們有的,我們都有!」
老美實在不瞭解這玄機:「這些東西你們有什麼用呢?」
「當然有用!平常在你面前,我們是裝傻,其實我經常把我的子民們叫到這裡來教導他們如何如何… 。」
老美一眼看到了幾盒口香糖及巧克力,那原是給一些瘦巴巴的小傢伙們打牙祭的,現在也成為示範器材!
「我還是不懂!你們真要接受現代文明是好事,為什麼不自己動手做呢?」
「所以我們叫你們做笨神!」酋長笑不可支:「就是因為你們以為我們落後,才肯把你們辛辛苦苦做出來的東西拿來送給我們,如果我們會做,你還會送嗎?」
前些時看到一則新聞報導歐洲報紙登載:「中華民國的經濟成長,已躍居為落後國家的首位。」不知你有什麼感覺?我們不能否認這個鐵的事實,可是想起上面一則落後的故事,就像是一根針,狠狠地扎在心頭!
回頭是岸!前面說了不少,結論只是幾句話。各位千萬不要以為有一個完整的明確的「電腦形象」!因為在事實上,目前「電腦」只是多種技術的結合。在今天一切剛剛開始,明天會變,後天更會變。我不能害你,讓你有了種牢不可破的成見,這個成見會限制你的研究發展,會令你自以為瞭解電腦而高人一等!
千千萬萬,萬萬千千,不要滿足於你已知的。因為不知道有多少新的概念正在形成,正在蔓延,不知道又有多少根深蒂固盛行已久的觀念會被推翻。舉世在瘋狂的進步,不進步就落伍,落伍的總有一天會煙消雲散。
因此,在本書中,我只能告訴你一些概念,而且限於我所瞭解的概念。我所知已經很少很少了,能夠表達出來的更少。現在坊間有很多參考書,也曾經是我的啟蒙老師,如果你要進一步加以認識,就不要捨不得去買一本回來!
3 電腦的身世
據說,電腦的老祖宗是我們的算盤,也有人說是八卦後裔。由於電腦自己諱莫如深,是否已開始尋「根」尚不可知。我們也就不必過於熱衷其個人私事,只是要瞭解電腦,倒是不妨先學易經八卦。因為二者都有共同的特色……二進位數字。
你一定熟知十進位數字,不然的話,你很難把一些概念明確地表達出來。或許有人說:「我不懂數學,但是我同樣能夠思考。」這話有一半不對,你可以說不懂數學,但是由於我們人類文明經歷了數十萬年的演進,數字的觀念已經演化形成很複雜的概念。在本質上,這些概念都建立在邏輯結構上,而邏輯結構與數學是密不可分割的。
由於上天給人一雙手,每隻手五根指頭。人之初,指頭是最現成的計數工具,把指頭一根根地扳下去,到十為止。如果不換一種方式,就沒有辦法再扳了。當然,誰也不知道我們聰明的老祖先如何克這種困難的,可是我們可以猜想,不論用什麼方法,再板一次十隻手指是唯一能繼續數下去的方法之一。把上一次扳的手指數記下來,這便形成了「進位」的觀念。
易經的八卦是以陰及陽為基數的,且假定陰為零,陽為壹,太極本為宇宙本體,由陰陽而生四象,四象生八卦(注意其進位必為二的乘幕);更由八卦推出六十四卦,由六十四卦再衍為四千零九十六卦。不過由於其中微言大義包羅萬象,要人去瞭解六十四卦已寥若晨星,四千零九十六卦恐怕不是小小的人腦可以負荷的了。
巧的是電腦走也是這條路,由零及壹二個數字一直衍生下去。4096在電腦術語上叫做4K,意指為四千筆資料。(因為洋人習慣於用千進位,每千單位稱KILO,千個千筆策冉為MEGA等等,千分之一稱為MINI,千分之千分之一稱為MICRO ,這些名稱對瞭解英文電腦相當有用)為什麼在人已習慣了十進位數序後又來一個二進位呢?說穿了不值錢!因為二進位最單純,不是即非,簡單不過。
在一九三七年,哈佛大學的霍華,艾肯設計了一個笨重龐大的機械,利用開關、按鈕,可以將一系列簡單的開、關動,表達一些資料情況。一九四五年,賓州大學的普里斯.艾克則利用電子元件及電路,改進了機械的控制,增進了速度的效益。這種設備應用上已經有計算的簡單功能,也就是利用每次開關的分辨下,累積計算其值。因此,被稱為是逐次累積的計算機。
大家所熟知的IBM ,全名是國際商業機器公司,在一九五三年,也推出了其第一部產品……IBM701。其特色是把真空管應用到電路中,更擴大了計算機的功能。這種真空管式的計算機,其功能比今天各位所見到的手錶型計算機差不了多少,可是體積卻巨大得驚人,大約有一般公寓四倍大。同時,它也名符其實,被稱為「第一代計算機」。
一九五九年,電晶體取代了真空管,體積縮小了數百倍,耗電也少,因之「第二代計算機」又問世了。這時正是IBM 的獨霸局面,他們陸續推出了IBM1401、IBM7094等產品。一九六五年,單晶體的技術又將數百個電晶體濃縮在一小片IC積體電路上,體積又濃縮了數百倍,是為「第三代計算機」。此類至今尚有使用者,其代表如IBM360、370等。
到此為止,IBM 是主宰電算機市場巨人,他們網羅了最優秀的人才,擁有最精密的技術。像古羅馬帝國一樣,多大的地震都不能搖動它。
究竟人腦有他的缺點,就是容易犯錯,只有在犯錯途中,才有必要修正其方向。當然,我們不能靠犯錯來做事,但偶而錯一次說不定反而產生奇蹟,因為沒有誰知道什麼才是真正的對,或真正的錯。
在這時候,一個不太起眼的研究公司INTEL (當然是指在當時IBM 的蔭影下,而今該公司已是赫赫有名),接受了另一家公司的委託,利用大型積體電路的技術,來設計一種計算機。產品做出來了,基於許多種因素,委託的公司不願全部接受。經談判結果,INTEL 公司降價以求,並保留自行銷售之權。
這一來,INTEL 公司的損失相當可觀,公司內部對這個新產品的看法也莫衷一是。於是在不斷的腦力激盪下,有人提議不妨將這片大型積體電路(像塊橡皮擦子大,裡面有幾萬個電晶體)當做一個控制器,以供各種自動控制系統之用。這個主意沒有什麼不好,但也沒有什麼了不起,因為市場在那裡,誰都不知道。
這原是個錯誤,錯在原委託公司的估計,以及INTEL 公司設計的方式。如果沒有這種錯誤,很可能計算機的發展史會走向另一個方向。事實上,當時已有很多有財力、有技術的公司已經投下了龐大的資金,在大型電腦及迷你電腦的方向上研究改進。
同時,據當年所有專家們樂觀的預測,都不約而同地看好迷你電腦(不要被其名稱所惑,實際上它只是比IBM系統較小)。以致於IBM 在往後在往後幾年的政策,執著於大型電腦不變,白白錯過了大好時機。終至由75% 的市場佔有率,跌到今天的35% ,此是後話,表過不提。
奇蹟出現了,因為計算機的觀念當時已很普遍,很多人在研究如何設計小巧輕便計算機,但是卻解決不了其中最重要的控制問題。這片小小的「大型積體路」,立刻被應用於中樞控制CPU ,由中樞控制決定訊號的輸出輸入以及儲存應用。於是,小型的電腦誕生了,成本大量降低。
工廠、公司、中小企業以及學校家庭都有能力購置小型電腦,市場不再是IBM 所佔有。電腦的功能也不限於數據資料之處理,且大量應用在自動控制、圖形運用、聲光之傳換等。因之計算機被我國人稱為電腦確有其道理,甚至連美國人都在討論,這種新型的產品是不是還該沿用「計算機」之名?
有人將這種技術之誕生比擬為「第二次工業革命」,確實與否有待史家去傷腦筋,但是其影響之深且鉅,遠非早期幾代計算機所可比擬。此外,也有人將這一代的計算機稱為「第四代計算機」。
我們且稱之為電腦吧!嚴格說來,電腦之分類很難。各種廠牌及型別都有其特色及功能,但是為了有別於最初固定設置在特定空間中的電腦,可以移動的較小機種。已被命名為迷你(MINI,千分之一)電腦,如IBM 第三代產品1130等。因之,更新而又更小型的電腦再被降一級為微型(MICRO ,千分之千分之一)電腦。
現在一般的標準是,所謂微型電腦多用軟性磁碟,64K 的主記憶體。(迷你型則用硬磁碟,256K主記憶體)可是更小型的電腦也出現,無以名之,便被稱為家用電腦、私用電腦,甚至掌中電腦。當然有朝一日,你一定可以戴一個手錶電腦,而這個小的手錶電腦其功能說不定比今天IBM370還要厲害得多哩!
4 電腦的基本原理
說了半天,你一定還搞不懂什麼是電腦,別急,在這一節裡,我要介紹一些基本的原理。如果你看來嫌枯燥,我勸你先不妨走馬看花,以後有興趣再細細地看它。因為,只有在這些細節裡,你才能完全瞭解電腦這個怪物在玩什麼鬼花樣。更進一步說,除非你不想破壞對電腦的偶像崇拜,否則,你會清楚地瞭解,電腦原來這樣簡單,這樣的無知!
要知道電腦多麼無知,只要看看這個例子。如果用一加一千,連小學生都馬上知道是一千零一。可是電腦卻麻煩大了,它必須把一加上十個進位才行。或許,你學過電腦,你會說:「胡說!我們寫程式沒有這樣麻煩。」別忘了,你寫的程式是經過人們特別安排的,包括最起碼的機器碼在內,都是人用來幫電腦簡化其動作的。我們既然要瞭解電腦基本原理,就必須由其最原始功能說起。
首先,我們要知道電腦的中樞裡有一個計時脈衝。它在每秒鐘振動數十萬次到數百萬次,它每振動一次,就產生一個訊號。這個訊號由無到有,然後又由有到無。有訊號時,就傳送到所有聯通的線路上一個固定的電壓(正五伏特)。這個有與無反覆交替,每秒鐘變化二百萬次時,我們就稱之2MHZ,即二百萬赫茲。
現在你應該看出來零與壹的意義了,前述的振盪,在「有」時電壓為5 伏,相當於1 ,「無」時相當於0 。這種數字對時鐘脈衝而言是種規律,它們永遠是相依為命,一前一後,永不分離。這個規律的0、1是辨識所有訊號的同步基礎,正因為它簡單、明確,所以電腦簡單、明確。
問題在,什麼叫同步基礎呢?如果你看過戰爭影片,在拂曉攻擊之前,全營官兵集合,指揮官宣稱:「對錶!」連、排長們立刻小心仔細地將錶準備好。指揮官說:「五點十分三秒正!」大家立刻撥好錶,(當然,要對秒針不容易,可是你也得設法記下其差值,否則後果不堪設想。)然後,各種行動按時實施。
攻擊部隊要盡全力深入敵境,而後方支援火力則準備待命,至約定時刻,分秒不差,陣地砲轟開始。此時,在前線的部隊們若過早尋掩體,可能失去進攻的良機;過遲則難免受到不分敵我的砲彈催殘,這種時間的配合,便是同步。
在電腦中,同步的重要性遠大於一切。前面說過,計時脈衝每秒振動二百萬次,也就是每個脈衝佔時二百萬分之一秒,以術語說等於0.5 微秒。換句話說,每秒鐘可有二百萬個動作須要分辨,如果不同步,各唱各的調,豈不天下大亂?
因此,電腦的中樞即根據這個同步脈衝來檢查所有訊號。也就是說,只要電腦中樞不犯情緒,它必然是一成不變地,每秒鐘檢查二百萬個訊號(當然,並不是這樣單純,但是,你這樣去瞭解它也就夠了)。
至於如何檢查訊號呢?在中樞中,有很多閘門。所謂閘門,也就是檢驗站,專門負責查視所有通過的訊號,並根據訊號的內容來決定做什麼。顯然,訊號是個主角,我們又必須先解釋一下什麼叫訊號才行。
訊號和時鐘脈衝一樣,也是零與壹所組成的,不過有一點分別。時鐘脈衝的排列是永恒不變的,而訊號則是非變不可的,否則所有訊號都相等,豈不等於沒有訊號?
我們再進一步說明:時鐘脈衝等於一個固定以0.5 個微秒速度通過一個檢查站閘門的標準,每開一次閘門,檢查一下是否有電壓通過。因此,在每秒鐘內,可能有零至二百萬個電壓反應被偵測到,這些被偵測到的反應就是訊號。
好了,閘門已經檢查到訊號了,然後根據訊號的性質內容來決定下一步的動作。
相信大家還是不瞭解訊號到底是個什麼玩意?人人都會口頭談談資訊,也都知道資訊就是資料及訊息。但再問下去什麼是資料,什麼是訊息,那就煞風景了!簡單說來,資料是靜止的,訊息是動態。因此,二者實是一體兩面,資訊可說是所有現象在靜態的記錄或動態的傳遞之形式。
資訊並不是個新玩意,早在人類從叢林中跑出來之前,就充斥在宇宙間了。小鳥啾唧是資訊,犀牛角力也是資訊,連星光閃爍和太陽的黑子活動何嘗不是資訊?只是我們離不開人的立場,因此我們暫時狹義地避開那些莫測高深的訊號不談,僅僅「訊號」為經過人類概念思考後所釐定的一種辨識資料。
這就簡單了,我們已經解電腦僅能分辨開、關或有電壓及無電壓動作,我們也認定其為0 及1 兩種數字。既然電腦只認識0 與1 ,我們又怎能讓電腦來處理那麼多繁複的工作呢?
我們且來研究一下二進位數字吧,且假設:
0+0+0, 1+0+1那麼, 1+1+?
對了!既是二進位,就表示2應該進位,如同十進位時,十就不該寫成個位數一般,我們再假定:
1+1=10,同理,10+1=11, 11+1=100…
這種加法很簡單,只有0 與1 一直進位下去。顯然你可以看出來,位數愈多,其所能代表之數值愈大,可是這樣又如何加以運用呢?
如果電腦只為了計算數字倒還簡,現在的電腦愈來愈不像話,居然會下棋,還會給人作媒、倒果汁,這些不是數字可解決的。
幸而電腦生在洋人國度,否則它一定會被中國文字搞糊塗了。因為在康熙字典中,中文居然有四萬多個!西方拼音語系字母數目不一。以英文為例,有26個字,若分大小寫,則為52個,加上阿拉伯數字10個,標點及符號等32個,總共才94個。
以這94個號為基礎,再加上一些作為控制特殊命令,七加八加,加到128 種,恰好是2 的7 次乘幕。也就是說正等於二進位七位數。七位數比較討厭,因為與2 不是倍數,再加上在資料傳輸上為了保證正確。所以又特別加了第八位,以供檢查用,於是八位數的二進位數字成為電腦最基本的結構。
再進一步說,八位數的二進位數字一共有256 種排列組合(256 係指十進位數而言,如果你有興趣,不妨自己加一加看,只許用1 及0 ,根據二進位加法,進到第八次後,正好加了256 次)。在這256 種排列組合中,已將所有英文字母,標點符號,數字等全部包括在內。因此,這種基本結構可以配合前述機構,可以代表英文語系所欲表達的各種訊息。
各位一定想知道,中文怎麼辦呢?難道這種方法,我們不能用?如果不能,我們該怎麼辦?
這些正是我們要探討的主要內容。我們不能妄自菲薄,電腦是人發展出來的,人對訊號的辨識也不是天生的、一成不變的。因此,只要我們能把握住電腦設計的原理,以及訊號的特性,再根據我們的思維方式,加以改良,只要功夫下得夠,中文電腦絕對不輸於英文電腦。
5 中文電腦在那裡?
不知道你聽說過「中文輸入」這個新名沒有?這個是新創的,全世界僅有的專有名詞,只有中文才有中文輸入問題,這絕對不是廢話。
為什麼這樣說呢?拚音文字系統已經可以用字母輸入,非拚音文字國家中有些為了解決問題,想盡辦法把自己的文字改成拚音式的(像韓國是個明證,日本也曾極力淘汰漢字,不過此路難行,現在又在走回頭路了)。還有一些國家彷彿中流砥柱,無動於衷。只有我國,近年來學者專家們無不絞盡腦汁,希望把中文放進電腦裡面,這就是所謂的「中文輸入」。
中文輸入,見文思義,是指將中國文字用鍵盤輸入的技術,以求達到大量資料處理的目的。
常有人問我,為什麼一談到中文資訊就那樣麻煩,英文資訊和中文又有什麼不同呢?每次我試著詳細地分析其前因後果,卻都把人澆了一頭霧水!
這樣吧!我舉個例子來說明一下,不知道會有什麼效果?因為我在想不到有什麼恰當不過的例子。
且假定世界有一個以蕃茄為主食的民族吧!由於蕃茄生態特性,很令他們困惱。比如說,蕃茄一年收成一季,又不能久存,存久就會腐爛等等。
這時某國設計好一種蕃茄加工廠,可以將蕃茄製成罐頭,以備終年食用。
這當然是個好消息,於是推派了一些專家去工廠參觀,實地瞭解。
的確沒有話說,堆積如山的蕃茄由農場源源不絕地送來,罐頭也一批批地製好放進倉庫。大多數專家都主張立刻把工廠買回去,但是卻有少數人在唱反調。
由於這種工業加工的技術,其先決條件是要有大小形狀相近的蕃茄。在這個工廠中,由入口分類槽、清洗槽、剝皮機、輸送帶、過磅器、裝罐機等等一系列生產工具,都是根據一種特別培植的「圓粒蕃茄」而設計的。而他們自己的賴以生存的蕃茄卻是一種名叫「華夏種」的多汁皮薄,大小不一,形狀各殊。
唱反調的人問:這種土生蕃茄,連入口都通過不了,這工廠有什麼用?
持贊成意見的則認為:生存第一,換個口味,吃這種能工業化生產的蕃茄有何不可?了不起引進新品種,全面推耕種,再不然生產一部份工業蕃茄以備必要時用,也比目前這樣好。
現在,假定這是我們的事,而你是決策人士,你該如何處理?
我們再把這個例子用電腦來表示,工廠就等於電腦,圓粒蕃茄是英文字母,華夏種是指中文。所謂中文輸入問題就是指如何把華夏種蕃茄放進工廠的生產帶上!
電腦是非用不可的!也就是說工廠是必需引進來的,於是我們面臨了幾個選擇的方向:
一是重新設計工廠的生產線,茲事體大,我們有這個力量嗎?有當然好,沒有怎麼辦?
二是改良其不適合我們國情的部份,比如說把入口分類槽加大,大到能容納我們的蕃茄尺寸,皮就不用剝了,反正只要把蕃茄塞到罐頭裡就好!
三是改良品種,使華夏種也大小形狀如一,而維持風味不變。
最後一則是最自然不過方法:聽任自然,不聞不問。只要設法使用工廠開工即可,蕃茄來源不拘,國外採購就國外採購,生存第一。
站在第一種立場考慮中文電腦的才是有心人,可是有心無力,徒呼奈何!
站在第二種立場的人特別多,在早期這似乎是唯一的方法。但經過一段時間的應用後,發現了很多無法突破的困難,目前除了沿用以往外,很少有新的構想出現。
第三種方式目前方興未艾,由於尚未經過時間的洗禮,一般使用者還在觀望。以致於市場很紊亂,除非一個強有力的因介入,否則在短時很難定案。
最後一種立場是無可奈何的,但在決策人士的地位上,關係到整個國家民族未來的命運,他們當然要審慎從事。可是觀望太久,等待太久也不是辦法,圓粒蕃茄吃久了也會上癮的!
把我國文字比喻為蕃茄,實在是大不敬。請原諒我的無能,我在找不到更好的譬喻來解釋「中文輸入」的奇特現象。但願以後能給你一個滿意的說明,現在我們就來談談中文電腦吧!
6 讓我們來駕馭電腦
中文電腦的定義是:用中文語法操作及運用的電腦,絕非只能顯示中文字形而已。
相信你會同意這種看法,如果能打出中文就叫中文電腦,那麼只要有繪圖功能,電腦就可以畫出中文來,也就可以號稱中文電腦了。同理,能繪圖的電腦就比畫各種文字,甚至於畫任何事物,為什麼非稱「中文電腦」不可呢?再進一步說,假如「太空人」也能有文字的話,只要是二度空間的,繪圖電腦都能畫出來,是不是我們也該稱之為「太空電腦」呢?
這道理太明顯了,但是大家要知道,能有中文出現在螢幕上,已經是天大的成就了,是很多有心人士專家學者們多年來努力的成果。所以暫時請勿挑剔,同時,真正的中文電腦我們已經有了。只是以目前的程度而言,有待繼續努力,但為說明方便,我們仍然沿用「中文電腦」之名。
一提到中文電腦,就好像劉姥姥進了大觀園,眼花撩亂。常有人說現在正是中文電腦的春秋戰國時期!一點也不錯,這是個好現象,表現出我中華文化新生的契機。
諸位不妨仔細想一想,如果我國不立即資訊現代化,便將在這場科技競爭中遭到淘汰的命運。可是,現代化的資訊工具都是英文(其實不正確,應該說是拚音字母語系)系統。很明顯地,如果我們照章全收,不要多久,英文必將取代中文在我國的地位。
或許有人不以為然,但是想想吧!所有政府機關,公司行號都必須依賴現代化資訊工具之時,你如果不懂英文,能做什麼事?中文程度再好,找不到工作,如同廢人(當然沒有那樣悲觀,還可以寫寫武俠小說,只是到時,恐怕武俠小說也要翻譯成英文了)。
這是個悲哀的畫面,但是,的確有人認為國家強盛就好。用中文不過是個沿襲下來的習慣,如同穿長袍馬掛一樣,改穿襯衫西裝也不錯呀!這話對了一半,不過,有兩個個小小的問題:我相信古今中外,要面子是人性之常,我們這一代能夠不爭氣到如此地步嗎?其次是,難道拚音文字真的要比我們的文字優秀嗎?可能嗎?連泥菩薩都有「土」性,而我們活生生的人,有名有姓的人,有過光輝燦爛的歷史。也有奮發圖強的現在,我們能放棄自己的母語?放棄自己的祖先?而歸咎我們的傳統文字?
我可以鄭重地告訴各位,絕對不然!而且我敢用我所擁有的一切賭個東道,廿一世紀將是中華文化被全球的輝煌時代!
人應該有信心,但不能盲目地自己騙自己,吹牛不犯法,但要別人也相信,就得拿出佐證來。
第一,我們有第一流的智慧。證據是經過人類學家、心理學家、行為學家、醫學家等等各界科學家一致公認。智慧與人種遺傳無關,完全來自後天的環境。因此,結論是,所有人種都具備相同的智慧,誰都是第一流的。
第二,我們有最多的資訊科技人才。多年來,人才外流的結果,留學生到了美國,語文是首要的障礙。要想出人頭地,就必須選擇一項與語言能力相關性最小、而發展潛力最大的行業。由於電腦還不會說流利的英語,因此成為大數留學生最有利的事業。一旦國家需要,我們立即有足夠的技術人才,發展我們的資訊事業。
第三,幾乎中外文字學家,以及資訊工程學者一致公認:中文是舉世最難於學習,但卻是最具表達能力的文字。只要能克服應用的瓶頸,中文將是最理想的文字工具。證據呢?太多了,不勝枚舉:
一、在人的感官中,視覺最強烈,對概念的形成最直截了當。因此,最理想的辨識訊號必然是圖形符號,而最理想的圖形符號,必然是象形符號。因此,以象形符號為依歸的中文、遠較拚音文字藉音之轉換而產生概念之表達性強烈。
二、中文除圖形的特色外,又具有形狀圖固定的好處。在未來的資訊處理上,將有一種所謂「資訊單位面積表達性」之要求。也就是在同一單位面積上,表達之資訊意義最多且最完整。目前全世界沒有任何文字的單位面積上的變化有中文多,且完全採用相同的單位面積(例如英文長短不齊,且只有26個字母的排列變化)。
三、在概念的表達中,中文用字最少。各位不信,可以參閱各種商品說明書,凡有中文者,必然用字最少。用字少表示在大量資訊處理時速度快,效率高,而且經濟。在許多報告中,咸認為中文用字較英文少20至30% ,再加上中文可用代碼,每字平均又比英文少30% 以上。因此,同一份文件,效率及經濟條件,中文比英文至少高50% 至60% 。
四、在可見的一兩年內,語音的利用將會大大提高資訊效能。中文為單音節,每字一音,又比英文複音來得節省。加上拚音文字有一大隱憂,因為經過時間空間的變換,人們的語音習慣會改變,因之文字也常受到影響。但中文從古到今,不論何時何,不論讀昔如何,字形永遠受到認同。這也是何以我國雖然幅員廣大,方言眾多,卻仍然維持在同一國家體系之重要因素。顯而易見,在未來長遠的歲月裡,語音技術的大量應用,將不致對我國導致任何危害。
再說下去就嫌太多了,你會問,為什麼中文的資訊應用卻瞠乎人後呢?說來話長,慚愧的是這個責任要由你們這一代年輕人來負擔。總有一天你們會明白,人的成長到了某一個程度就停止了,一停止就變得固執,拒絕接受新觀念,拒絕承認他所來不及吸收的新事物。
其實中文電腦已產生了,不僅有,諸子百家不下數十種之多。當然,賣瓜的人絕不會說自己的瓜酸。但是酸甜總有個標準,我試著提供一些判斷標準的方向出來。諸位就不難分辨出那一種方法是適合我們的,讓我們一起來下點功夫把中文電腦的優點充分發揮,把缺點全部改進。
一、輸入問題:即使語音輸入已成功,鍵盤輸入仍然是必要的手段。鍵盤輸入定義,是將文字經由鍵盤的按鍵手續傳輸到電腦中,因此必須考慮到幾個重要的因素:
1 、鍵盤的優點:鍵盤是西方人發明的,經過了幾個世紀的應用推廣,已經普遍
被接受,且發展為全世界通用的標準。如若我們不能配合利用,勢必要另外投
資建立不同系,這幾乎是絕不可能的恐衚衕。因此,利用標準鍵盤是不容懷疑
的最佳途徑。
2 、文字的特質:中文是獨體文字,但仍然有其形成的法則,僅僅為了一時應用
方便而將文字本身精義拋棄掉,亦將是一種損失。此外,不僅要承先,甚且要
啟後,能用於現有的文字也能提供將來造字的新機,才是上策。尤其是在這種
日新月異的時代中。嶄新的概念及事物叢生,如果僅用幾千年前發展出來的概
念來強湊合,恐怕不合時宜。
現在英文字彙已嫌不足,大量的縮寫字應運而生,而我們呢?這雖是未來的
課題,我們今天就應有足夠的眼光一次解決它。(在未來幾節中,我們會嘗著
運用新創字)
3 、應用的方便:任何一種新方法都難免要學習,學習期間的長短是判斷標準之
一。但更重要的是操作方式;學得快,而用得麻煩,將是後患無窮。操作方式
在鍵盤輸入上,必須能達到盲目按鍵的要求。不妨設身處地想想看,打字時,
眼睛一會看文稿,一會兒看螢幕,一會兒又看字鍵。
像這樣,不只是忙得不亦樂乎,問題出在眼睛的疲勞、與精神的無法專注。
「盲目按鍵」則不然,眼睛看在文稿上,十指在鍵上飛舞,包你勝任愉快。
4 、重複字少:除了硬性以數序編號,重複字在所難免,這是不得已的。各位學
英文時,會奇怪為什麼要記不規則動詞表?為什麼不全部採用規則動詞?這個
道理是很現實的,因為初民發展的文字文法必然不能充分滿足長遠的需求。全
部重新改過來根本不可能,所以舊的不妨將就,新的另行規定。所以不要怕重
複字,但求避免到最少。
5 、字彙擴充量大:一種新的輸入法當然可以任我們規定,有人說中文常用字不
過八千,也有人說是三千,但目前誰都同意應有一萬八千字左右才夠用。只供
某一型資料處理,中文用字都有限。但是,作為一種為萬世沿用的標準,我們
怎能只顧眼前小小需求?
各位要知道,一部電腦價值不貲,你可知道買了電腦後在應用時還不要不斷
的投下大量人力?將資料建檔,整理,專家估計應用電腦所投之資本以五年計
算,將比原電腦價值高過十倍。在經年累月,全國上下採用後,一旦字彙擴充
性不夠,那時再頭痛就無藥可醫了。
6 、最後,有一個不必提的重點,就是造價必須最低。這點,是市場學的金科玉
律,你一定比我更清楚!
二、輸出問題:我如果謙虛點,可能便成為虛偽了。我發明的「倉頡字母輸入法」是否符合國人需求尚有待考驗。但發明「向量組字法」卻已獲舉世公認,是目前最有效的方法,(我衷心希望你能提出更好方法)我們已能將所有中文(四萬多字)濃縮在一片晶體上。(如果我有足夠的錢的話,但做研究的人註定是不懂生財之道的)好在今天資訊界已認同我們的技術,可望在不久大量推廣。
三、程式語言:要談中文資訊,就絕不能避開這一點不談。因為把中文印出來只是目的,目的需要經過作業程序來達成。如果還要用英文程式語言去處理中文,老問題又來了!人人要用電腦,人人就必學會英文。因為,學會英文才能寫程式,這是最危險不過的事。中國人不是次等民族,我們怎能向我們的祖先與後世交待?只為了貪方便,就用別人的語言來處理我們的資料?整理我們的文化?
的確不錯,英文軟程式已發展得非常成熟,有現成的為何不用?為什麼還要浪費人力來發展中文軟體程式?一千個理由,一萬個理由,抵不過一個理由:「我們是中國人,中國人就應該用自己的語言,用自己的方式來處理我們自己的事。外國月亮圓,那是他們命好!外國的東西有價值,我們只有咬牙苦拚!總有一天超越他們,代價是自己的血和汗,是畢生精力智慧,但絕對不是犧牲我們自己的語言文化!」
再換個角度來看,英文軟體程式引進國內就能一成不變地應用嗎?他們怎樣做我們就該怎樣跟進嗎?誰都知道,科學技術日新月異,一個新的改革,立刻可以把過去的一切成就否定掉。他們這幾十年來辛苦發展的軟體程式,就是金科玉律,永不改變嗎?
最明顯的例子是,在我國各大專院校,尚被視為經典的COBOL 在美國已逐漸被淘汰了。美國大學不再選修COBOL,起而代之的是PASCAL 。好了,我們只顧盲目跟進,揀人家不要的過期貨,飢不擇食還可以原諒。我們自己有能力,不去研究發展,一味貪圖現成,怎麼可以?
再舉個實例來看,第五代電腦已呼之欲出,由於技術突飛猛進,電腦應用觀念已大幅度的改變。但是,為什麼我們還沒有看見動靜?說穿了很簡單!常常有國人抱怨我們歷史包袱太重,他又怎知別人沒有?IBM 是電腦界的翹首,卻也正是歷史包袱最重的。你不妨想想,自從一九五三年起,數十年的電腦王朝……賣出了多少電腦?有多少人力財力投入那貪得無厭的電腦軟體上?簡直無法估計!至少也是天文數字。
每一新生代的技術產生,IBM 就痛苦一次。他們不變不行,因為市場壓力,變也不行,因為客戶不能接受。最好的例子,360、370是第三代的產品,到今天還在用,為什麼?因為第四代的43系列在軟體轉換上還有很多困難,削足適履,還是小事。至少他們有辦法,大問題隨著硬體技術的改進,軟體也急需適度的修訂。但是他們不能改,改不了,並非原有軟體程式太好,而是一改成新的,舊的就泡湯了。
既然如此,我們還有什麼理由抱著他們的舊包袱當寶貝?反過來說,我們正好藉著新的技術,另起爐灶,從頭開始發展我們的軟體技術。我們能夠很輕易地一步跨入美國專家學者們期盼已久的「自然語言」。也就是說用平常對話一樣的方式去教電腦做該做的事,這原是「電腦高階語言」的最終目的。美國人不是做不到,而是我在前面說的原因:「包袱太重了。」我們能,因為我們沒有那些包袱!
不過我還有一點加以補充,在我們自己的程式語言還沒有完全發展成功之前,我絕不反對暫時利用他們的包袱。但是這個暫時不是永久,也不是十年八年,最多三年。我們有這股信心,朋友們,歡迎你們參加這個行列!
當然,我們也不能太樂觀,中國人太聰明了。人人都想憑著他個人的才智名利雙收,永垂青史,讓別人分享一點都不行。於是,門戶、派系、黨同伐異,小圈圈的利益大於大圈圈,大圈圈的利益重於國家社稷,而最牢不可破的是自我利益!
如果你調查一下有多少人想獨樹一幟,搞一套自以為可以名滿天下的「中文輸入」方法,你會大吃一驚!再如果你調查一下有幾個人願意贊成用某一種方法,再加以研究改進,你又會大吃一驚!
第一驚訝是:「怎麼有這麼多有心人?」。第二個驚訝是:「為什麼沒有人肯研究別人的?」理由有很多,包括我自己,我就是第一種人。但我在十年前開始時,是因為尚沒有可行之道,我必須另起爐灶。現在,方法已經很多,已有各種成品問世,錦上添花再沒有必要。雖然我前面曾說大家重視這個問題是好現象,但是怎能永遠研究輸入方法不休?
不錯,改進別人的東西,好像沒有開山祖師的風範,遠不如自己佔山為王。可是想想我們可憐的國家吧!我們要做的事實在太多了,為什麼一定要固執己見,重重複複地浪費人力財力,而不衷誠地攜手合作呢?為什麼一定要打擊別人,以提自己的聲望呢?為什麼把所有的智慧用在對付自己同胞身上,而不用全部精力與外人一爭長短呢?
朋友們!你們可知道日本人的作風嗎?今天日本已成為經濟超大國,隨時隨地可以搖身一變成為軍事超強國。為什麼?只有一個原因,日本人從不標榜自我,完全以團體的榮譽為依歸,為什麼我們不能這樣呢?
看看我們社會,不論什麼行業,都是一窩風。冷門工作沒人做,看別人炒熱了就眼紅,繼續發展研究的工作也沒人做,只顧標新立異,默默無聞的工作沒人做,只想出鋒頭。
或許別人也會用這種話來批評我,我不擬答辯,我只用行動來證明。現在又行向另一個荒山僻野,開墾出來以後,留待他人淘金去!
7 未來世界
直到現在,你究竟對電腦有什麼樣的概念呢?相信仍然在五里霧中。是的,不知道你有沒有一種經驗?在茫茫大霧中摸索了半天,突然聞到一陣桂花飄香,行不數武,一片桃紅柳綠面撲來…。
別上當,在現實生活中這幾乎是不可能的。因為桂香和桃紅很難扯上關係,我今天硬要把它們扯在一起,只是為了讓你瞭解電腦本身就是個大雜燴。你千萬不要以為電腦就是電腦,可沒那麼簡單!
再讓我換個方向來分析電腦,這次我要說明的是它的功能。如果你能觸類旁通,你立刻可以自由自在地利用這種七拚八湊的方法,發展出更有價值的「電腦」來。當然,那時可能不再叫它電腦了,不過我在此鄭重地囑咐你一句,千萬要多充實一下基本學理,不要妄想手到擒來。
你一定見過英文打字機,五十四個或較多的鍵鈕,聯結在一根槓桿上。輕輕一按,槓桿尖端所鑄成的字形便透過色帶,印在白紙上。
好了,且讓我們把上述的情節簡化,以免以後解說時嚕囌。五十四個鍵鈕我們稱為「鍵盤」,按鍵盤的動作稱為「輸入」,然後將字印在紙上,叫做「輸出」。
顯然,機械動作的打字是一體的,到了電動打字機,有些機種,輸入和輸出的部份就可以分開了。假如我在工作時怕打擾別人(要知道打字機的聲音並不悅耳),我把鍵盤放桌子上,而把輸出份放在院子裡,再用根電線把輸入的訊號傳到輸出部份上。你可知道我剛才發明了什麼?「長距離電動打字機」,也就是一般人稱為「電傳打字機」的重要資訊工具。
千萬別小瞧它,指揮大軍作戰要靠它,越洋生意要靠它,我們今天大部份消息、情報、資料都靠它在服務。當然,在輸入輸出之間不僅僅是根電線,而是極複雜精密的設備。可是,原理就那樣簡單!
我們再回到桌子上,一按鈕,字就打到院子裡。問題來了,我怎麼知道我打對打錯?或者打到那裡了?最簡單的方法是打一個字記一個字,再加上十分小心。你會說,這是做什麼?乾脆寫下來算了,還打什麼?不錯!正因有人這樣想,他又希望打了以後能記錄下來,這種看來無意義的工作卻是很重要的一步。
最早的記錄方式與現在發展一脈相承的是在紙帶上打孔(請注意我只是在設法把桂花與桃花扯在一起,發明紙帶打孔的是一七四五年的法國人,他並沒有玩打字機遊戲)。IBM 公司把它應用到輸入技術上,這個包袱一直到今天還有些系統丟不掉!
紙卡儲存效率不高,後來又有了磁豉磁蕊等的發明。到今天,磁碟磁帶以及積體電路大行其道,到未來,就要看你有什麼新構想了。
當打字又能儲存之後,又有一個問題產生了,能不能讓我們隨時看到呢?如果可以,我們又能做一件事,便是先不必立刻把它印出來,一直等到我全部打完了以後再一次印出。這樣有很多好處,假如我發現這篇資料不好,可以不印。如果發現錯誤,還可以更改,我們怎能做到這一步呢?
這又扯到了另一個重要發明,就是陰極射線管。你一定看過電視,電視讓你看到的便是陰極射線的電子掃描殘像。電子束在真空中以高速運動時,會遵守磁場的法則,我們可以隨意控制它,因而成為目前最普遍使用的視覺顯示。有了陰極射線管,我們只要把輸入的符號傳到電子束中,就可以讓我們看到了。
這種把資料顯示出來給我們觀看的就是顯示器,在某些情況下也可稱之為終端機,含有達到了目的地的意思。
經常,終端機與鍵盤是在一起的,以便立刻可以看見。在這種情況下,輸出部份就可以獨立了。因為立刻印出來已經沒有必要,甚至於在螢幕上顯示極為方便,印在紙上的需求相對減低,變得不是最主要的功能,因而成為附屬裝置。
但是資料還要存在記憶體中,記憶體有很多種,現在最常用是積體電路。基於功能不同,有的隨時可以存進去;也隨時可以讀出來,這種叫做「隨讀器」。有的只能用特殊方法存進去而僅供我們讀出來用的,如同一本書一樣,這叫「僅讀器」。
隨讀器有個毛病,有電時它才工作。如果電源切斷了,它立刻罷工,這時裡面儲存的資料也就鶴飛冥冥了。還有它先存的資料很輕易地就被後存進去的資料取代,這是它的優點也是它的缺點。因此,我們如果要將輸入好的資料存起來,不再改變它,便要用別的方法了。
現在用得最普遍的附屬裝置(一般概稱為週邊裝置,也就是說它們是外圍組織,可以用可以不用。),是磁碟及磁帶。磁碟分軟硬兩種,恰如其名,硬磁碟性硬,可以高速轉動,性能佳,存的資料多,價格也貴;軟磁碟薄而輕巧,較便宜。至於磁帶,小型的多與卡式錄音帶相似,更為經濟。
什麼是非用不可的設備呢?既是非用不可,我們就稱之為主系統。我們再回到最初的構想中,鍵盤能輸入了,輸入的資料也能儲存,而且能顯示在螢光幕上。這些動作目的何在?當然是要用,我們首先來看要怎樣用,然後再來分析如何達到這個使用目的的過程。
最簡單的用法比如說打一封信,現在我們且給這個主系統命名為電腦吧!電腦首先要知道你要做什麼,因為它可以做的事很多,不只是能打一封信而已。
於是第一個手續是你要先在電腦已經學會技術中,選定你要用的項目,這項都是用一些簡單的鍵盤符號來分辨的,負責分辨工作的稱為「操作系統」。討厭的是電腦廠商太多,各顯神通,結果是各有其「操作系統」。當然,你要用它,就得瞭解它,偷懶不得!
選操作項目時,你要知道你的工作有那些動作?以打封信來說,要把資料存在磁碟中或把信印在紙上。還要在打錯了以後可以修改。這個工作且假定我們是在用「中文操作系統」,而且有個「編輯」的功能可以符合。你就可以在鍵盤上輸入「編輯」的代碼,系統立刻開始作業,螢幕上會出現一個詢問你編輯檔案的名稱。因為信打完了要存起來,如果沒有名稱,從何找起?
這時,你輸入一個假定的名稱,系統會去比較有沒有這個名稱在檔案中,有就把該檔取出來(在這種情況下,多半是在磁碟或磁帶中去找);沒有即視為新檔。
如果是舊檔,電腦還要知道你想做什麼,因為它可以替你印或者修改,或做各種處理。如果是新檔,直截了當,它等待你把資料存進去。這時螢幕上會出現一個字標,指示輸入字出現的位置,字標可以用鍵指揮移動,進退裕如。
打完了別忘了叫電腦替你存起來,否則前功盡棄。
編輯是電腦最基本的一種功能,打封信只是它牛刀小試而已。假如你有很多資料,比如說有個工廠,有員工一百人,每個月發薪水、抄名冊、算工時麻煩得很,電腦自是義不容辭地為你服務了。又有問題來了,如果每家工廠作業方式完全一致,情況相同,那好辦!毛病在人人自以為自己與眾不同,各有各的特殊做法。而電腦是個死心眼,在系統中,它的作業程序是按照固定的步驟,一一執行,這個一成不變的步驟怎能去配合那麼多不同作業方式呢?
你會以為人員薪津表該有一定的格式,在歐美或許是,至少也只有幾種不同形式。但在我國,毫無標準,尤其是一些小公司,幾乎家家不同。有一次我勸一位擁有不少員工的公司老闆,稍稍修改一下他的作業方式。他卻說:「我白手起家,就是因為我有獨到方法!」。
閒話少說,既然各家作法不同,沒有標準的共同方式,電腦就傻了!因此必須用一種方法或教導電腦,以便能應用於各種不同的情形。
為了達到這個目的,首先找一些不論是誰都可以用的功能,把它們放到主系統中,這就是我們剛才談的「操作系統」。此外也有一些並不是人人要用,但也有共同標準的某些工作,也一項項準備妥當。如同「人員薪津表」在歐美的做法,要用的人只要把應用方法買來,再放進電腦裡,就可以當作操作系統所增加的一項功能來應用。
說了一大堆,其實只是一件事,這就是「電腦軟體程式」。經常介新觀念最怕專有名詞,但不用專有名詞,說起來便成了王奶奶的裹腳布了。「軟體」意思是使用者可以修改,而且經常有必要修改的一種「東西」(其實它不是東西,而是一大堆叫電腦工作的命令);此外還有韌體,是專家們設計的軟體,但是卻固定在機裡面,使用者沒得改了。最後是硬體,是種很固定的機件,使用者用用就好,連機殼都千萬別碰,因為如果你不懂電腦,硬要碰硬,可划不來。
再用個譬喻說明,你買了一台電視機,這台電視機就是硬體(不過要注意,千萬別說你買了台「硬體」)。你扭開電視,裡面有節目,這些勉強可以說韌體。因為鄧麗君在唱歌,你叫她不要動,好看清楚點,是辦不到的。但電視台的導播卻可以,但他要顧全大體,不能只給你一人看。你嫌這樣不過癮,不妨用錄影機再買個錄影帶,自己動手用程式控制,想怎麼看就怎麼看。在電視上軟體就是節目,在電腦中,軟體就是指程式。
嚴格說來韌體不能比為節目,而是電視導播與機房,主控室之間的作業程序。
那麼什麼叫做程式呢?簡單說,程式就是經過設計,用一系列的指示來完成某些工作的「有程序的式子」。韌體也是程式,是用來結合軟體與硬體的。因此操作電腦時,一些最基本的工作都要它,所以牢牢地裝在系統裡。
現在我們可以這樣說了:程式是用來控制電腦的法則,有什麼程式,電腦就可以為你做什麼事。沒有打籃球的程式,電腦就不能陪你打籃球,如果你要電腦陪你打籃球,就得另外想法寫一個程式……當然,先決條件是你要寫得出這種程式來。
不知道你看不看武俠小說?記得有一本是這樣開頭的!
「靜夜,風息!萬家村中雞犬不鳴!
平平的大地,靜靜的林梢。
…………………
驀地,一騎飛馳而過,馬色赤紅,顯係寶駒!
馬上是一神采奕奕的青年俠士。
…………………
突然,俠士勒馬駐足,仰首高喝:何人?
林梢一黑影,飄然而去,
俠士身形一閃,展開八步趕蟬絕技,尾追不捨。
…………………」
這部書一共有七、八本,人都有好奇之心,萬家村怎樣了?夜中有什麼事這般神秘?一匹紅寶駒?俠士何人?黑影又是誰?這熱鬧不能不看,我一本本地追下去,愈追愈糊塗。因為所有前面以及繼之而來的疑問,只有增多沒有減少,萬家村再也不提,赤紅寶駒也慷慨的失蹤了。愈看愈火,愈火愈想見個分明,直到最後,這個俠士殺完了天下壞蛋後,來個飄然而去!
到今天我還痛恨這部欺人太甚的小說,但是,想想自己,到現在我在這本書中,到底交待了什麼?絕不是我賣關子,因為我本人是學農,年近四十才有機會接觸電腦。當初花了不少功夫,看了各種相關書籍,問了不少專家,只希望瞭解什麼是電腦。答案是百分之百正確精準,「電腦就是電腦」誰說有錯?這種尖端科技,豈是你我輕易能瞭解的?
等我真正自以為瞭解電腦時(全部透徹瞭解當然不可能,比如說你瞭解你自己,你可知道你自己已牽涉到所有學問,心理學、社會學、生物學、物理、化學…等等,要知道學術愈分愈細,愈分愈精,人不可能什麼懂。),我想用最淺近的言詞來說明它,很不容易,希望你多多包涵。
言歸正傳,現在扯到程式,或許你已經寫過很多程式。很簡單,只要按一定的規則,根據流程,一步步地就寫完了。我認為並不這樣簡單,不是說寫程式不簡單,我是說瞭解什麼是程式不簡單。我們不能以會寫程式就滿足了,我們要研究它,透徹的瞭解它,而且要改進它,使它成為自己的。
我國人在近百年來受盡西洋人的輕蔑後,看看外國人,總有些自慚形穢,民族自尊心早已盪然無存。因此,外國貨照全收,學還來不及,豈敢加以批評,更遑論重新研究?
天下任何已知事物,要去模倣,都不會太難,只要考慮值不值得?但是要瞭解那些已知事物是什麼?怎麼會那樣?不那樣又如何?應該是什麼樣子?應該不是怎樣?
腦筋動起來很累,而且與有無價值毫不相干,對急功近利的人是絕對不值得的。常有人勸我:「你搞電腦不就夠了嗎?可以名利雙收,為什麼一天到晚唱反調?」我的回答是:「名利是可愛的,我要的大名大利,要把中華民族的大名,中華民族的大利,提昇到與老外相等!」要做到這一點,我一個人力量是不夠的,一千個一萬個也不夠,只有全中國人都和我一樣有這個抱負才行!
年輕朋友們,這個希望只有期待你們去實現。要實現這個希望,就必須摒除「迷信權威」的桎梏,權威是看得見的,看得見的遲早會消失。導致權威的因素是努力學習及思考研究,這才是正途。既然要思考研究,連已形成的權威本身都不要輕易放過!
既然敢懷疑,我們就此討論分析一下。老實說,硬體我們還不夠格從頭來起,幸而硬體沒有文化的障礙,但是軟體卻是我們直接瞭解,是我們中國人需要使用的。既然有自己的語言文字,所以不僅要改成中文的,而且要由觀念及做法上改起。
程式語言,見文思義,是一種寫程式的語言。語言在目前必須以文字來表達,由於發展者構想不同,以及應用等功能的不同,程式語言有很多種,我只能做個概要的介紹。
在結構上,可以分為兩種:一是基礎結構語言,又稱低階程式語言,另一種即為高階語言。基礎結構語言是程式語言的基礎,也就是說高階語言要靠它作為基礎結構。為什麼要這樣麻煩呢?我們又要繞回去瞭解電腦的特性才能明白。
電腦只懂電源的開及關,也就是0 與1 兩個代號的實際動作,如果我用電晶體做開關,像個迷魂陣似的,相互串接,就可以控制很多動作。舉個最簡單的例子來說,電力公司在某區有個總開關,可以控制全區的電源。因此,憑這個開關,可以使全區的燈開或熄。到了你的家中,一定有個總電門,又是一個開關。假定你家有三個房間,其間各有一盞燈,又各用一個電燈開關。為了便於說明,我們分別給每一開關一個代號:
電力公司各區開關,設為甲。
家中總開關設為乙。
三個房間開關分別為丙、丁、戊。
如果我們把開關打開,也就是說電源接通,就寫成1;電源切斷就寫成0。我們可以把全部開關所產生的結果表列出來如次:
甲乙丙丁戊 結果 原因
0 0 0 0 0 燈全部不亮 電力公司控制
0 1 1 1 1 仍然不亮 電力公司控制
1 1 1 1 1 全部都亮 都有電
1 0 1 1 1 仍然不亮 家中總電門關了
1 1 1 0 0 丙房燈亮
1 1 0 1 0 丁房燈亮
1 1 0 0 1 戊房燈亮
1 1 1 1 0 丙丁房燈亮
……
……
如果你有興趣,還可以利用開關值產生很多變化。你會發現前述五個開關可以產生32種排列組合,但是產生的結果有很多是相同的,因為只有三盞燈,其亮滅的排列組合只有9 種。
各位可以看得出來,前述安排方式有點小問題,因為甲乙兩項是串連的,不容許有其他的變化。假如把甲乙兩項都改為的開關,而不再有總開關的話,那麼,五個燈就有32種明滅的變化了。
這就是二進位數字在電腦中運用的奧妙,只要五個開關可以控制五盞燈作32種明滅的變化。假如我們設計一個舞台,用十盞燈及十個開關,把燈放在不同的位置,用上不同的顏色。然後利用開關,由燈一個個地亮,一個配一個地配到全部燈一起明滅,該會有多少變化呢?答案是1024種,其計算的公式是:X=2^N
N 是變化種類,2 表示只有明及滅二變化,N 次方是指N 盞燈的變化。
好了,再回到前談的,英文字母及符號等用了八位數字,也就是2^8 ,共有256 種排列組合,我們稱為字元。同樣的道理,一個字元可以控制八個燈作256 種變化。
能不能把燈的明滅,視作某種特殊意義呢?比如說,我們設計一種汽車玩具,把燈光明滅的觀念直接用開關來表示。如甲1 表示甲開關接電源,甲0 表示不接。這時,我們設計為甲1 乙0 丙0 丁0 戊0 叫汽車前進,甲1 乙1 丙0 丁0 戊0 叫汽車左轉,甲1 乙0 丙1 丁0 戊0 叫汽車右轉… ,這樣,我們又可以列個表看看會產生些什麼變化:
甲乙丙丁戊
1 0 0 0 0 汽車前進
1 1 0 0 0 前進左轉
1 0 1 0 0 前進右轉
1 0 0 1 0 前進加速
0 0 0 0 1 汽車後退
這些是我們假設的,顯然,你對照著去比較,就會發覺每個開關有一個功能,甲管前進及不動;乙管左轉或直進;丙管右轉或直進;丁管加速或常速;戊管倒退或不動。因之,除了前述五種作外,你可以隨意撥動開關,車子會有很多其它的動作出現。
在電腦中,就是利用的這個原理,而目前最常用的也正是八組開關為基本的方式。不過為了增加更多的功能,新的設計都是十六組開關式的,你可以算一下,十六組開關有多少功能。
我們還是談八組式的,我們又要給這個八組式的開關組賦與一個新的術語,就是「機器碼」,因為電腦只認識它,只接受它的控制。
但是,人的頭腦太複雜,不可能只死記下那幾個二進位的「機器碼」。而人又要用它去控制電腦,於是發展出一套比較容易被人接受的電腦語言。其實這種語言只是用些人比較熟的字母來代替那些冰冷陌生的二進位數字罷了。
上述這種直接用文字符號代替機器碼的稱為「基礎結構語言」,也就是所謂低階語言。這種還是麻煩,為了要普遍應用,而用它的是人,最好的方法是用人講話的自然語言,這是理想,至今還未能達到。退而求其次,為商業報表而設計的高階語言就叫COBOL ;為一般應用及學習的就是BASIC ,還有科學計算用的FORTRAN 以及其他林林總總的各種語言。
這些高階語言都是藉機器碼達到操作電腦的目的,因此,將這些高階語言轉換成機器碼又需要一種「編譯程式」。由此,你應該想像得到,英文都要靠「編譯」才能與電腦溝通,中文為何不能直接與機器碼溝通?當然可以,只要我們去設計「中文編譯語言」。
你現在已經有了開關的認識,機器碼等於是一個八連座的開關,只要你去撥動這個開關,就可以叫電腦做事。的確如此,機器人就是這樣設計的,問題是你必須把要機器人所有的動作行為都考慮進去,這才是最難的一部份,為什麼呢?我舉個例子你就知道了,翹個大姆指不難吧?可是要完成這個動作,至少需要八個開關,也就是說放鬆及收縮的肌鍵有八條。一定要同時配合,但是這還不包括翹大姆指的速度和勁道,只是隨便動一下而已。
人是最奧妙的發明,電腦再聰明也抵不過人腦,只怕人的惰性,如果依賴電腦太多太深,那才是危險所在。
現在你也會懷疑了,電腦能做的工作不會比翹一下大姆指簡單吧?256 種變化怎麼夠?是的,的確不夠,因此有時候必須把開關延伸到十六個,這也是新型設計改良的原因之一,甚至到未來32位元的也有人考慮到了。
根據機器碼發號司令的大本營,我們稱之為中樞。中樞的設計廠商有很多家,但最成功,用得最多的有Z80、8080、6502、6800 這都是型號,我們不去管它(各位有興趣的話,可以參閱我們公司出版的更深入的叢書)。我們要知道的是,他們怎麼設計這中樞的?我們有沒有必要以及有沒有能力設計出更好的中樞來?
在這本書裏,我們不可能討論得太深入,但是概念要先建立起來。概念不是死的教條,更不該是別人已經做好的成品。概念是一種瞭解,根據這種瞭解,我們可以依需要及實際情況去運用。當發現有不盡符合理想時,我們可以再回過頭來,根據基本概念加以修正改良。如果不是這樣,我們只拿到別人的成品,人家教我們怎樣用就怎樣用,那就糟糕了,不是成了機器人一樣嗎?
現有的中樞是根據計算機的功能演進的,計算機最拿手的就是數字,又由於英文字母少,也可以視為一種數字,稱為文數字。文數字與數字的分別是前者所含的值是假設的,可以隨意改變。例如:假如A=10,X=Y+6等等,但是數字本身就是個定值,我們不能去改變它。
由於這種關係,英文很容易被應用在計算機上。當計算機的發展成熟,自然而然,中樞的設計就以數字及文數字為應用對象了。
這並不是說中文就此被排除了,當然不!我們已成功地証實中文電腦與英文電腦功能全同。但是,是否文數字就能概括所有的資料訊號呢?
我們在前面談過,中文在未來的潛力遠大於英文。但是我們如果坐下來等那一天的到來,中文可能已經進入博物館了!那麼如何發揮中文的效能呢?在過渡階段,我們可以利用已有的成品,改成中文來應用。同時我們就要動手來設計開發更好更適於我們的產品。
有些技術問題恕我賣個關子,到適當的時機我們再談,這裏我只能指引一個方向。也就是世界上幾乎有一半國家及人民在使用有別於拼音字母的文字--圖形文字,如果圖形文字不好,不必等到今天,恐怕早就淘汰了。目前這些國家都處在痛苦的邊緣,原因無他,只是由於資訊處理的不便而不得不停滯不前。
如果你能完全體認這個道理,你就沒有任何理由感到自卑。很顯然,只要我們的資訊工具能夠方便經濟,整個系統建立起來,大家是平等的,我還要來個狗尾續貂。我認為目前的資訊工具只利用到文字符號一半的功能,另一半圖形文字卻被忽略了。如果我們能把圖形文字的功能也用在資訊工具,明確的說,用在電腦的中樞上,那會是怎樣呢?
你再想想,我們說過,拼音字母必須先將字母的讀音拼出來,根據聲音的聯想,才能形成概念。換句話說,拼音語系是聽覺的領域,而圖形文字是視覺的領域。聽覺及視覺各有優點,但誰也不能否認,視覺的感受最直接,最強烈,也正是最理想的資訊符號!
因此,這幅圖畫很明顯了,如果我們能設計出來「圖形符號」的電腦中樞,不僅革命性的新型電腦誕生了,全世界所有使用圖形文字的國家都能揚眉吐氣。到那時,電腦的思考方式不再僅僅是一連串的數字符號,還包括了圖形的解析在內。速度增快了,容量擴大了,功能也就強化了。
再補充一句,行家會說:「繪圖電腦有什麼希奇?外國早有類似這功能的電腦。」據我所知,不同之處甚多,成本造價是其一。最大的問題是這些功能都是附加的,特別設計的,只能做某些特殊的工作而已。
我們且舉個簡單的實例,來証明我們的謬想,且不論「視覺輸入」的價值何在,我們僅以現有的電腦記憶結構來討論。如果存一筆資料,且假定是五個字母吧,這五個字母所代表的涵意有多大呢?可能是一件東西、一個人名。不論為何,我們要知道的是,在同樣的空間中,五個字母能表示多大的辨識性!在現有英文語系中,理論上應有26︿5種可能。但是,由於實際上英文是用固定法則拼出來的,字並不多。概略估計,五個字母可用字應有一萬至二萬字間。但如果把這五個字所佔之空間視作圖形資料儲存的話,其涵意高達2︿40種!
或許有人認為癡人說夢,那是他囿於傳統的美式碼,忽視了二進位功能所致。當然,我們要充份利用二進位圖形的功能,我們必須重新設計「圖形中樞」!
有了圖形中樞,資料的儲存及應用只是一例而已,直接受惠的就是圖形文字。我們雖能組合出幾百萬種字形,三萬五千個有效中文,且可作好幾種字體字形,但是卻要一片64K 的模版。64K 在大系統來說根本不算什麼,對私用電腦說來,卻是很大的負擔。要扯平中文與英文的差距,就必須把中文字形產生器的空間減到英文字形產生器的大小,而英文只需要0.5K。
中文字形產生器是用現有的中樞功能設計的,既然中樞中沒有考慮到畫圖形的功能。我們就必須用一切方法來遷就它,比如說,很簡單的一個筆劃「直」,在16*16的字形中,至少要用48個指令才能完成,如果一個指令耗時五微秒,就需240 微秒,筆劃多,速度影響更大。此外在空間上更嚴重,由於沒有「圖形記憶」功能,我們必須用各種公式把字形「計算」出來。我們不能以這種做法滿足,經過我們研究結果,如果能增加圖形的功能,最少空間節省十倍,速度更提高五十倍以上。
因此,為了迎接超小型電腦時代的來臨,圖形中樞更不能或缺。
8 我們能忽視中文電腦嗎?
再談那些技術問題就難以回頭了,且看看電腦的另一面吧!我們已經知道電腦有主系統做些儲藏、印字、傳遞等打雜工作,而主系統則由鍵盤接受人的控制,將所輸入的資料按照人的要求去執行。
前面也談到一般性的「操作系統」,如果有些事操作系統不能勝任,我們要寫些「程式」來取代操作系統,以便為我們工作。
現在我們要談的是:「電腦怎麼為我們工作呢?」,有一個很容易瞭解的例子,不知道你見過「客廳工廠」沒有?貨進了大門,送到客廳中,一家大小忙忙碌碌地工作。做好的半成品先放在一側,太多了,便抱進去堆在臥室裏。等到半成品可以組合了,再把堆在臥室裏的抱出來,再加工,直到完全做好,才包裝好收起來等待出貨。
大門可以視為鍵盤,是送貨及資料的進出口。客廳就是操作空間,空間愈大,可以容納的貨及工作愈多。一般算客廳的積單位是「坪」,而電腦計算操作空間單位叫做「千筆」,也就是1024位元。一般客廳十坪大小,電腦的操作空間則是64千筆為標準。
客廳中為了生產必須放些工具,工具不能太多,如果放得太滿,貨物就沒地方放了。太少則不方便,電腦亦然。「操作系統」就是工具和工作人員,佔了十幾千筆的位置。寫作的程式也是生產工具,當然是寫得愈精簡愈好。臥房可以當倉庫,儲存貨物,在電腦則視作周邊裝置,作儲存資料之用,而臥室的門就成為周邊裝置(或倉庫)的進出口。
好了,可以開始工作了。不過我們還得假定,這家工廠有了電才能工作,而且電一停,客廳中便自動清掃得乾乾淨淨。
第一步,把電腦電源打開,這時客廳中空空如也。我們必須把「操作系統」這班工作人員磁碟中搬進來(也有永遠把工人安置在客廳中等的,但是想想就可以明白,除非專門做某些工作,這樣空間會浪費一些。)。這時只要一按指定的鍵,立刻就準備好了。
現在使用人必須輸入他要做的事,比如說要登記日用流水帳。這不是一般操作而是特別寫的程式,於是鍵入程式名稱,操作系統就開始檢查庫存中有沒有這批貨色。沒有當然沒法做,操作系統會給你一個問號,再靜候指示。如果有,這些工作人員就忙著搬運。由於房門很小,出入口經常交通壅塞,所以一切透過「出入口」所需的時間都很長。
貨物就位了,新的貨物也送進來。歸類的歸類、需要處理的分別處理。對日用帳而言,是些名稱和數字,使用者可以透過顯示器看到,並用鍵盤指揮調度。該加的加、該減的減,一切都做完了,再收回倉庫留後用。
所以當你要買電腦時,要曉得你有多少工作要做?這些工作要佔多少空間?客廳大固然好,工作太少也是種浪費。至於工作多,客廳太小,周轉不開就要一點一點的由庫房搬出來做。做一點,收拾一點,可有得頭痛。
此外,使用的工具也很重要,是不是有現成合用的軟體。如果沒有,寫起來容不容易?這就是何以微電腦中有商用、家用及私用的分別了。商用一定要在64K 以上,家用則多32K ,私用只要16K 即可。除了空間的大小,能力也有分別,商用的操作系統是職業好手。有的還可以分班工作,一套系統可以提供幾個客廳工廠用(多半是四組),家用及私用則功能有限,成本也相對低廉,比較適合於學習及小量資料處理用。
在商用微電腦以及迷你電腦的領域,假如沒有現成的軟體程式可以使用,那就必須由專家們來為你服務了。有些電腦公司不提供這種服務,而透過所謂軟體公司來進行。
首先你所接觸到的是系統分析師,他們要徹底明瞭你要電腦為你做什麼?怎樣去做?他們完全瞭解後,寫好計劃及流程,得到你的同意,再寫成細部流程圖(所謂流程就是一道一道處理手續流經的過程)。然後交給程式設計師去寫成程式。通常一個小程式要寫上幾個星期。
這類程式最常見的形式是:「第一部份為建立檔案的手續與方法,建檔就是將資料用某種格式輸入。第二部份為查檔及改檔或清檔,你可以用它來找資料,修正更改。第三部份多做各種處理,如同印製報表、計算、排序及交集等。這種形式並非必要的,但不失為一種容易理解以及應用的方法。程式寫好以後還要經過除錯的工作,這道手續經常最令人頭痛,再好的程式師也難免有錯,要知道錯在那裏可要靠真功夫,我們通常把除錯叫做「抓蟲」,一定要把所有的蛀蟲抓光才能交給使用者試用。」
看起來麻煩得很是吧?可是你要知道它工作的代價,你就知道絕對的值得。
我們常聽人提到人性兩個字,尤其是看了些哲學書籍的人。其實,最瞭解人的不見得是哲學家,哲學家所討論的是精確的概念,我們只要知道事實。事實是:「人性就是你我的通病與共同特徵」,想想自己,看看別人,人性也就昭然若揭了。
人性的通病就是怕麻煩,容易對一成不變的事厭煩,很難一直專注在單一的事物上,而且經常受到生理、心理的影響而浮燥。我如此,你也不會例外。
你再想想,我們的生活中有多少事是多采多姿的?有多少事能令你興緻勃勃,朝夕不懈?即使有又能維持多久?如果你只是個中學生,我這樣說恐怕不妥當,你太容易同意我的意見。因為你正為了做功課痛苦得發瘋,正為了媽媽逼你洗澡而哇哇大叫!別說讓電腦代你洗澡,讓電腦代你學習也不是好主意,它學會了絕不會還給你的。
不過,用電腦來練習功課倒也是個好主意,因為有問必答,尤其是電腦不會像哥哥姐姐一樣,問到第三次那副臉色就不好看了。電腦還可以測驗你,跟你比賽,只要你不累,它奉陪到底。
現代的一般工商業界,別看他們每天忙碌不堪,其實沒有幾件新鮮事。不是進料就是出貨,清查庫存、盤點、公司來往、人事薪資等。而這些事正好都是命中註定,遲早都要被電腦所取代的。
在日本有很多工廠裏空無一人,每天但見貨進貨出,機器全部自動化了。各種儀器,工具配合著電腦的控制,忠實勤勞地不停工作著。在海上,三十萬噸的大油輪,甲板上可以踢足球,可是只要一個船長及幾個技術工程師就夠了,人呢?聽說都到東京去人擠人了。(你會奇怪我為什麼只提日本,美國是最早發展全自動技術的國家。但是美國太強調民主,工會極力反對自動化,因為會搶走工人的飯碗,於是便宜了日本人。)
談這些索然無味,我不妨跳過你張眼就可以看得到的今天,讓你遨遊一下未來的世界。也藉此告訴你電腦的真正潛力,別以為我在吹牛,這條牛正在等你去把牠牽到我們面前來哩!
王小弟和他的爸爸媽媽住在第14056 號地下城中,他的父親王先生是太空太陽能微波轉運中心的技術師。在以往,太陽輻射到地球上的能有85% 都逃逸掉了。現在經過太空站的收集,不僅逃逸己減低到5 % ,而且還能擴大收集的半徑。據中心的五年計劃,要將地球上空一百公里外的強烈伽傌射線,全部納入地球的能源供應之用。
王先生的工作在中心裏是比較忙碌的,他每天輪班一次,每次要一小時。他的任務是坐在電腦主控室裏,偶而檢查一下各種儀器,看看電腦們是否會因過於疲勞而影響工作情緒。
工作完了,王先生只要一按套在手腕上的「斜晶氧」(註:一種金屬氧化半導體及主軸1.36度偏向的金屬結晶,是用來做訊號控制。)他立刻經過「空間位移」,由太空回到14506 地下城的家中。
王太太正躺在「無重力椅」上,看「身歷境」電視訪問罷工遊行的節目。在客廳的中間,有個金屬框緊附著在地上牆壁及天花板上,一端是家人朋友團聚區,另一端則是「時空介面區」。你想要到海邊,它就成為海灘,你想上山去玩,它就將高山帶到你面前。你想去那裏,它就是那裏,只有一樣它辦不到,就是不具有時空介面裝置的地方,或者是你的家中不希望被他人闖進來的時候。
王先生跨過「時空介面」,王太太立刻迎上來,笑著說:「你看電視!你們的工會要嬴嘍!」
王先生說:「不可能,我今天看了電腦最新資料,今年太陽黑子活動比預測高出2.3%,能量歉收!」
「這有什麼關係?大家正好趁機休息呀!」
「休息?我們每天上班一小時,那才是休息時間。你看,你坐在家裏,利用時空轉換,任意遨遊,娛樂,每秒要消耗0.45焦(註:新的能源單位,焦是一個太陽能焦耳),全世界一百億人口,要增加多少消耗?」
「哼!你呀!就怕人不知道你在能源中心做事,動不動能源不足,那些事有電腦去想辦法,你擔什麼心?」王太太生氣的時候,顯得特別可愛。
「本來我就不擔心。」王先生指著「時空區」中在遊行示威的人潮說:「你以為他們會嬴?那是做夢!今天世界上一切大事都由地球電腦聯盟做最後決定,電腦規定每人一天上一小時班,並不是說電腦要靠人幫忙,別自命不凡,人的價值早就不存在了,電腦養著我們只是點綴一下他們的生命」。王先生說著不免激動起來:「人實在不爭氣,要知道智慧及知識只有愈用愈充實。一天只剩下一小時還不珍惜,白天活在時空介面裏,晚上沉醉在造夢機裏,整天鬼混,混到什麼時候?… 」
王太太聽不下去了,她馬上接著問道:「你上次答應我給兒子辦長青手續的,結果怎樣?」
「你急什麼?」王先生更不耐煩了:「電腦當局還要調查!」
「兒子早已經答應了!」
「他答應並不表示他心甘情願,他有權利長大成人,怎麼能一直做小孩?」(我不得不解釋一下,這時的人已經有長生不老的技術。電腦為保持人口的定數,規定在電腦紀元開始,凍結人口的生殖,只有每死一個人才允許一個人誕生。生育子女是人性之一,這時,人類最難滿足的慾望,便是對子女的渴求。王太太也不例外,既然不能生育,就希望兒子永遠長不大,永遠陪伴在身邊。)
王太太知道是她過於自私的緣故,但是她怎能不自私呢?她還有永生的,漫長的,無盡的歲月在前面平靜地延伸著。新時代樣樣好,好得找不到一點不好,可是電腦不瞭解人性,也解決不了人性的問題。她內心有種渴望,也是人間所有做母親的渴望。她想用生命去擁抱一個軟綿綿的,無助的小軀體,說些毫無意義的話,扮些無道理的鬼臉。
其實,這點並不困難,電腦當局特別為天下母親準備好了全套的程式。她可以隨時收養一個白娃娃,胖娃娃,黑娃娃,小娃娃,和自己長得一模一樣的娃娃,也可以隨時還給電腦當局。這些娃娃當然不是真的,但是不論用什麼角度去研究分析,他們與真的娃娃沒有半點分別。餓了,小手亂抓亂哭亂叫,滿足了他也會咿咿呀呀自顧自己的傻笑一陣,小眼珠裏還會閃過「純真」的「孺思」,會拉屎會撒尿,連那股騷味臭味也如假包換… 。
可是,王太太仍然像是失落了什麼,她說不出來,總之滿足不了那種千百萬年延續下來的原始感覺。因此,唯有讓兒子長不大,王先生王太太爭吵了無數次。王先生最初堅持不肯,但是理智與情感之間也有激烈的戰鬥,有時理智失敗了,王先生也就同意了。理智一抬頭,王先生又後悔不已。這種事關係著兒子一生的幸福,怎能草率決定?
兩人正要掀起一場大戰之際,門鈴響了,王先生乘機下台。一按斜晶氧,在時空介面出現一個畫面,是個六歲可愛的小男孩,他在一所兒童遊樂場中玩得滿頭大汗,口裏吸著「冰露汁」,面對著場中的時空介面。
王太太見是兒子,立刻喜笑顏開,一掀鈕,雙方畫面就接通了。
「兒子,快回來休息一下吧!」
王小弟見到娘,也高興地說:「媽!你來陪我玩好不好?我找到了一隻小狗,牠聽得懂我的話哩!」
「狗有什麼好玩?又髒又臭!」王太太最怕小動物。王小弟天天央求,想盡辦法帶了熊貓、袖珍象、金背龜、玻璃蛇,甚至於養過一隻會做家事的小白猿,但是王太太的耐性始終維持不了三天。
「媽,這種狗經過電腦處理,絕對不髒不臭,妳看!牠還會自己洗澡呢!」
王小弟又在施展他的磨功,他捧起地上放的一個水盆,然後(口忽)哨一吹。剎時,竟由他濕轆轆的衣襟中,跳出一隻毛色靛藍的長毛小狗。狗不過比人的巴掌大一點,彷彿經過排演,非常純熟而自信地來一個花式側翻。然後,小狗一下鑽入水中,水花四濺。小弟的頭上臉上都沾水珠,連王太太都嚇一跳,不由自主地忙向後躲。
小狗似乎知道闖了禍,立刻回過身來,扒在盆沿,伸出牠那小小的舌頭,往王小弟臉上直舔。王小弟又癢又痳,邊笑邊躲,水又灑了一地… 。
「不要胡鬧了!快把狗放開!」王太太生氣了。
小狗聽到這種聲音,嚇得連忙縮回去,可憐兮兮地縮成一團,動也不敢動。
「媽,求求你嘛!」王小弟眼睛看著小狗,實在捨不得放手。
「不可以,你給我回來。」王太太永遠忘不了那條玻璃蛇鑽進被窩裏去的往事。
王小弟絕望地噙著眼淚,他還想做最後的努力:「爸…。」有時候王先生會站在他一邊,戰爭才有希望。
王先生知道這些小動物對兒子的意義,雖說這些都是電腦玩具,可是做個玩伴,牠們遠比真正的小動物還要逗人喜愛。這一代的孩子太寂寞了,又與大自然完全隔離,幾乎可說是養在現代監獄裡!
不過王先生還有一點要考慮,在這個時代,一切不用「錢」來衡量。但電腦的感應設備己遍佈全球每一角落,每一個人的一舉一動都在電腦的監視之中,一分享受就要一分代價。每個人的代價都有個交換值,超過了連賒帳的機會都沒有。好在只要是個人,基本值就可以維持毫無額外享受的生活權,額外享受就必須用自己的時間去交換。
一隻小狗是生活權利之外的額外享受,王先生必須盤算一下是否「買」得起,看看兒子和小狗的「可憐狀」。王先生的感情又戰勝了理智,突然靈機一動,對王太太說:「要我立刻去辦理手續可以,我有個交換條件!」
王太太詑異看了先生一眼,小心翼翼地問:「是什麼樣的條件?」
「很簡單,你要兒子永遠長不大,就得讓他滿足於他的環境,否則是不公平的。」
王太太覺得有理,點了點頭,只要王先生不提出買一個電腦美女回家,什麼條件都好商量。
王先生接著說:「讓他把小狗領回來陪他!」
王太太一聽養隻小狗雖然讓她煩,可是有個小寶寶永遠陪在身邊也就不算什麼問題了。難得她先生主動提出,她馬上痛快地答道:「別說一隻狗,就是河馬也行!」
王小弟也破涕為笑,立刻一按鈕,透過時空介面,身上還淌著水,手中捧著在盆中汪汪直叫的小狗,撲進了媽媽的懷抱。
小狗也不見得討厭嘛!王太太心裏想著,她由兒子的滿足喜悅的歡容上移到那身藍色長毛的小傢伙,牠也知道有了個家,拼命地舔她的手指頭。王太太又聯想到兒子嬰兒期也曾經吮吸過她的手指,心中不禁胡思亂想:「如果生個孩子全身是藍色的不知好不好看?…」。
王先生見到這幅歡樂的鏡頭,心中也是暖暖地,他乘機對王小弟說:「兒子,你可要知道,自從電腦紀元開始,我和你媽都已經長青在現有的年齡上,只有你還在一年年地成長… 。」
王小弟立刻接著道:「爸!我知道,媽告訴過我,要我也去辦長青。」
「是的。」王先生又說:「這是件大事,你還小,我怕你不懂。」
「我懂。我願意永遠像今天一樣。」小狗掙扎著要往地上跳,王小弟不答應,小狗吠了一聲。王小弟一巴掌打去,對狗說:「別吵,聽爸爸的話!」
不論王小弟是不是能夠瞭解,這件事是必須進行的了。決定以後是不容反悔的,因為電腦當局只給予人類一次選擇權,道理很簡單,在電腦邏輯裏,只有是與否二種情況。
王先生心裏很過意不去,他咬咬牙下定決心,將來一定要好好地補償他這永遠長不大的兒子,滿足他的一切要求。
辦手續很簡單,他利用斜晶氧的按鈕,接通了電腦長青中心。立刻時空介面上出現了一間大辦公室及坐在大書桌後面的半身「人」來,這個「人」是標準面孔,標準聲音,是電腦當局與人溝通的介面。
電腦人用它永遠不變的,理性的聲音說:「申請人資料已經收到,你們是否已經決定了?」
王先生與太太同聲答道:「是的」。
電腦人又問:「王小弟,你呢?」
王小弟沒有見過這樣嚴肅的場面,嚇得有些緊張,他嚅嚅地說:「電腦伯伯,我願意!」。
「好了,你們的証言已經錄製存檔,小弟弟,你過來一下。」電腦人說道。
王小弟看爸爸一眼,低聲問媽媽:「我能帶小狗一起去嗎?」
王太太憐愛地撫著愛子的頭,說:「當然可以。」
王小弟緊抱著小狗,跨進了時空介面。剎那間,一道光柱罩向王小弟,緊接著,大辦公室及電腦人緩緩地淡逝,只留下一聲祝福:「恭喜你已經長生不老了!」
這時王小弟還留在客廳的另一半,王先生及王太太趕忙跑過去,緊擁著不知所措的兒子。王先生滿懷歉疚說:「兒子,對不起你,告訴我,你還要什麼,無論是什麼,我和媽媽都答應你!」
「真的?」王小弟不大相信。
「真的!孩子!」王太太也誠懇地說著。
王小弟想了想,憧憬的說:「我希望趕快長大,也和爸爸一樣做工程師… 」。
9 可悲的一頁
前面說的不是「故事」,而是未來的「鮮事」。假如你肯用心想想,世界上的事物永遠是利害得失各半的,公平得很。穴居時代的人有他的喜怒哀樂,電腦時代的人也有他們的悲歡離合。我們生在什麼時代,什麼地方,不是我們能夠作主的。但是我們要生存,要自保,不能任人欺凌,也不能鄙視他人。過去的讓它過去,我們且昂首面對未來吧!
電腦是未來社會的主流已不能再懷疑,因為世界上的人口愈來愈多,資源分配愈來愈不足。任何人都難免有些私心,有點偏好。唯有電腦,雖不能說是公正,卻是永遠一板一眼的。未來在財稅、經濟上,它工作時絕不會楷油貪污;在司法、行政上,它絕會枉法、苟且;在工作態度上,任勞任怨、不眠不休。此外,交通、郵政、生產、國防…那一樣不需要電腦?
不論你喜不喜歡電腦,明日的事只有電腦能夠替我們服務。不論你接受與否,電腦早已深入到我們生活之中。現在的問題是,我們應以何種態度去接納它,用什麼方法去運用它?用什麼立場去教導它?
可以想像得到,一旦電腦擔負起了未來世界的責任,而且它完全是英語系的產品,到那時,我們該怎麼辦?
人類文化大統一不是壞事,說不定將來會走上這條路。但是我寧願是優秀的文化取代低劣的,而不是低劣的取代優秀的。至於我國文化與西洋文化孰優孰劣?那是另一個戰場,可以任時間去抉擇。只是在今天我們絕對不能不給我們文化一個競爭的機會,我們不能自認低人一等而不全心全力地擔負起這個歷史的重擔。萬一我們的文化的確經不起考驗,我們接受光榮的失敗,即使戰至最後一人,我們也要任鮮血滴盡而死!
朋友們!見葉落而知秋至!不要迷戀燈紅酒綠,如果燈是進口貨,酒是泊來品的話!國家的苦難太久了,難道還不能喚起我們的良知?資訊時代悄然的到來,正是一則以喜,一則以憂;喜的是我們終於有了一個奮發圖強的契機,而憂的是迷信外國人的技術,妄想飲鴆止渴。只顧大量購置價廉物美的外國文化種子,讓他們侵蝕我國古聖先賢們用心血、用骨肉灌溉成熟的莊園!
這就是電腦,一個本無國籍,無生命的機器!它注定了要在未來世界中扮演重要的角色,我們竭誠地歡迎它!我們要用我們的文化,給它施以洗禮,教導它、培植它。
這就是電腦,我們不能自以為撿到了現成的便宜,不費吹灰之力便可以駕馭它、利用它、遷就它。然後在不知不覺中背叛了我們的祖先,揚棄了我們的文化,自命登堂入室,邁入了已開發國家之林。
這就是電腦,兒童需要它啟蒙、學生需要它教導、工廠需要它控制、商業需要它管理、政府需要它服務、軍隊需要它聯繫。在今天我們需要它,未來更需要它,它的重要性遠大於汽車、飛機、軍艦、原子彈,為什麼?因為它就是文化的結晶!
很感激政府的遠見,在此時此地大力提倡資訊工業,但願朋友們能更深入一步地瞭解,資訊工業的本質是什麼?我們應該欣然同意地全盤移植過來呢?還是痛下決心,把它變成我們文化的一部份?
這就是電腦……一個純潔無知的未來世界主人翁,剛剛從新大陸來到我們這片古老的土地上,面對這個陌生者,我們充滿了好奇與憧憬,向他們問東問西,請他作客,尊為上賓。如果他即來即去,我願意向他學句「哈囉」,如果他將永駐斯土,繁衍子孫,請問:「不乘機教他中文,不教他說中國話,不把他同化成為我們的一份子,在不久的將來,一旦人類大權旁落,這位陌生者當權得勢之時,我們還有什麼機會?」
-------------------------------------
一九八九年七月,也就是中華民國七十八年。一批中國青年科學家,踏上了太空船「黃帝一號」,準備作歷時(地球時)一百年的太陽系外太空的探險。他們深知此去後高堂見背,親友永訣,但是為了國家民族榮耀,私人的考慮都已置之度外。
「黃帝一號」旅途艱險,困難重重,但是他們小心達成任務,順利地按原定計劃折回(注意:在太空旅行,生命時鐘比地球上為慢)。這時他們的情緒高漲,熱血沸騰,他們展開那保存了一百年的青天白日滿地紅國旗,踏著大步、跨出艙門。
然而,那令人激動的一剎,令大家都楞住了。
呈現在他們眼前的,雖然河山依舊,人種相同,但所有的招牌標誌已經寫滿了英文!
待大家走進市區,好像來到一個陌生的地域,居然人們交談用的也是英文。
好不容易找到一位己經一百一十四歲的人瑞,這位人瑞聽了他們的問話,不禁涕泗縱橫:「啊!你們居然會說中國話,我們這裡在一百年前因為大量採用英文電腦…」。
當然!這是一場噩夢,我記在這裡,不怕你笑我癡,只怕這噩夢成真!
附錄:中文電腦的心臟……中文字形產生器的製作方法
這篇附錄是在校對完成以後才決定加的,原先我打算把它單獨出版,由於同事們看完本書後,紛紛表示「內容」不足要改寫。在目前忙碌的情況下不大可能,把兩本合為一本才是上策。
作為附錄還有一層意義,前面我「高調入雲」,可是並沒有提供年輕人一個可以入門的方向,罪過!罪過!
因此,我願意把我目前賴以「維生」的「中文向量組字法」的獨家技術公開出來,希望年輕朋友們一齊來共同研究。
不過有一點聲明,我公開技術是一回事,我的商品權利是另一回事,商品已經上市,已經有了專利權,若是有任何人想不費腦筋,「翻版」盜用,請不妨試試看,我會不惜傾家以拼(雖然多年來為了研究,我早已傾家盪產,至今負債六百多萬元),爭的是個「理」,爭的是所有研究發明人的「權益」。
至於提供技術,讓你也能研究,希望你做得更好,那是我的心願。如果你加入了新的構想,做得比我的更好,我會第一個向你道賀,向你學習。別忘了,中華文化不是個人的私利,也不是某人的責任,只有大家共同奉獻出各人的精力及智慧,才能繼往開來。
向量組字法耗費了我八年的心血,也投下了我們公司十幾位同仁無數寶貴的時間及智慧,它之能有今天,該感謝的還有更多默默的無名英雄,他們和你我一樣,都是中國人,都熱愛自己的文化傳統。今天我把這些技術公開,絕非作無謂的犧牲,而是拋磚引玉。
話說在一九七二年,我在巴西一個龐大的文化出版公司CUTURAL ABRIL 做美工完稿的工作。那時,我已浪跡海外達八年之久,從事過三十多種不同的行業。孤家寡人,形單影隻,每天我問自己:「又過了一天,我為什麼活著?生活的意義是什麼?」當然有答案,但是卻可望而不可及。
任何人,所追求的都是生活幸福,然而對一個中國人說來,生活幸福不僅僅只是物質的享受而已。因為,廣大的領土上,還有十億同胞,只因為少數人的野心,史無前例的浩劫降臨了。而在台灣,地狹人稠,廿年前經濟條件很不理想。因此,我背井離鄉,滿以為過不多久就可以揹一面「歸國僑領」的旗子,衣錦還鄉!
問題不那麼簡單,北美、南美,我所到之處,「中國人」所能從事的行業,都是些洗衣店、餐館、華洋雜貨。更由於隔閡,華人都被視為固執、神秘、不思進取的怪物。
由於國人謀生不易,省吃儉用地攢小錢為大錢。擺脫了貧窮,立刻千方百計與自已同胞隔離,羞與為伍。華人圈中多少年來,就是這樣的「鯉魚躍龍門」的方式,新舊交替著,跳進龍門的不再是魚了,引得魚兒們羨慕不已!
我作過很深入的觀察,體驗過每個階層的心態,得到唯一的結論是:「中國人的教養,本質都不錯,但限於「知識」,尤其是現代社會的各種專業知識,以及與外國人交際應酬的「介面知識」太缺乏了,以致於先求自保而因之自閉,更由於自閉而自卑。最後即使發了財,他們仍然沒有安定感、沒有幸福、沒有成就。」
這種情形和巴西早期的社會有很多類似之處,巴西是個地大物博的樂園,面積和我國大陸相近,但是可耕地卻比我國多出50% (我國約17% ,巴西67% ),年平均溫攝氏24度,除極南端外,一年如春。
巴西人種混雜,是移民的天堂,由於移民知識水準較高且比較勤儉,所以都有所成,頗引起巴西人的「側目」而自暴自棄。
這種現象直到一九六四年四月,一批年輕軍官推翻了左傾的總統姜古拉,厲行改革,他們認定要使國家現代化,必須從教育及知識水準提高做起,因之成立了這家文化出版公司。
我在該公司服務的那一年,公司的營業額佔巴西全國各種企業中排行第三十位,公司員工有五千人,每週固定出版98種專業雜誌,以及不定期書籍刊物無數!
這種企業化傳播知識的手段確實有效,近年來,巴西經濟的成長在我國之上,你無法想像十多年前他們曾被視為蠻荒,國民有80% 都是文盲!
有一天,我那個小單位的主管出缺,由於工作的關係,編輯部門交給我一份「急件」,是剛在美國出版而且暢銷的一本小說,翻成葡文後(巴西用葡萄牙語),指定要當天上市。
我楞住了:「今天上市?」
「怎麼?你是新來的?」編輯部的人一臉狐疑。
我不敢多問,反正按標準作業做就是了,心中有一萬個懷疑,那是基於在國內的經驗,出版一本書少說也要一兩個月!
我先作了大樣,然後將稿件送交「打字間」,記下時間是早上八點四十分,我告訴領班:「今天要上市啊!」
領班是個金髮女生,她說:「好的,中午前一定打好!」我怕她聽錯了我的中式葡語,又強調一次:「一共有廿多萬字哩!」
她笑了笑,挑戰似的說:「怎麼樣?十一點交給你。」
我不敢置信,跟她走進打字間,裏面有廿台”終端機”,只有十五人操作。領班進去隨意拈了拈稿紙,然後拆開分做十五份,分在打字架上,然後對打字員們說:「女士們!給中國人看看!我們兩小時內交卷!」。公司中只有我一個中國人,所以變成了我的名字。
十幾個小女生們一聽,誰都喜歡接受挑戰,莫不振作精神,十指如飛,每個人以平均每分鐘一百字的職業速度,果然在十一點鐘前全部打入電腦。
緊接著是拿著電腦印的文稿,送校對組,接著下來是我們的完稿工作,到下午四時我已把完稿全部送進製版部,我的責任全部達成!
為了想知道公司效率究竟如何,晚上我特別找一個較大的書報攤,由七點鐘等起,看著錶,大約七點四十五分,一輛漆著我們公司標誌的大卡車疾駛過來,連停都未停,一大包東西由車上擲下,我趨前一看,一點不錯!正是那本暢銷小說!
這是個新奇的經驗!假如一本最流行的暢銷書,能在一天內便由另一個國家介紹到自己國家來,那麼各種新奇的知識,有意義的知識,都能在最短的時機內,讓我們國人在同一時間,與他們同享!如果我們確知所獲得的是最新的,最有價值的一手資料,我們還落後什麼?我們還自卑什麼?
人性有個共通之處,比如說是籃球比賽吧!兩隊如果比數過於懸殊,彼此鬥志都會受到影響。輸得太多的人只求趕快下台,贏的人或許想多灌幾分,也可能顧全幾分面子,不論如何,賽程令人不忍卒睹。但是當差距在幾分之間,那就緊張了,誰也不會認輸,比賽完了,仍然是磨拳擦掌:「下次看我的!」。
如果我們請大量的留學生替我們在美國或全世界搜尋資料,翻成中文(我甚至希望有部電腦翻譯機),立刻透過這種類似的文化公司,用最快速的方法,用最合理的價格,把這些新知傳輸到全國每一個角落。知其一就想知其二,一系列的、各行各業的、各種程度的、趣味的、益智的、源源不絕,接二連三地送到手中,有誰不好奇?有誰不願接受一些對他而言並不是完全陌生的新事物呢?
人所排斥的是他不瞭解的,人拒絕接受他所懷疑的,這是人之常情。一個陌生人到你面前,拿出一顆藥丸對你說:「吃下去你就會長生不老!」,如果你吃,你就是白癡!誰不希望長生不老?可是我們必須瞭解原理,進而証實其可行性。
國家的前途也是一樣的,有人說如此如此國家就富強了,如果他說的我不懂,我若相信我也是白癡!同理,我要說服某人某事如何如何,我也必須先讓他瞭解這一切的相關知識,如果我們面對的是全國同胞,要怎樣才能讓這麼多人膫解呢?
這就是我所看到的答案,一個有效率的文化出版公司。不過,還有點技術問題,我們怎樣才能做到二小時打出廿萬字的一本書來?
找到了一條光明大道,不僅自己的生存有了意義,也能造福人群。我因此而離開了該公司,全部作業瞭然於胸,關鍵在於中文輸入。
在巴西沒機會及環境,於是我於一九七三年(民國六十二年)返扺國門,滿心以為會有人支持我的計劃。結果不然,為了謀生,也了實地體驗一下出版狀況,我寫了兩本「冷門」小說,從頭盯到尾,一本書至少要二個半月,足足比巴西人的速度慢了七十五倍!(當然他們是有組織的做法!)
人不能靠理想維生,我一方面打工,一方面開始了「中文輸入長跑」,直到今天,很遺憾我的理想還沒有全部實現。人人視我為瘋子,即使這個瘋子一再証明了他沒胡思亂想,但在一百個成功之後(只是工作的成功,而非權威的成功),第一百零一個構想仍被別人視為「沒那麼簡單」。
更糟糕的是我不會賺錢,也不願發文化財,因之我永遠註定只能帶著我們公司這一批「不知名利為何物」的傻瓜,辛苦地默默耕耘!
閒話少提!現在我來談從開始的構想到今天,有關中文輸出入的技術問題,以及其解決之道。如果你對枯燥的技術問題沒有興趣,我們就此說聲再見吧!已經辛苦你太久了!
在康熙字典上,中文有四萬多字,每個字都是一獨特的個體,字與字之間並沒有明顯的關係存在。
現在所傳衍下來的文字,是歷代的學者不斷地整理歸納詮釋,到今天才能有這樣一個規模。從東漢許慎的說文解字(其書共十四篇,收九千三百五十三字,以小篆為主,按字形義類分立五百四十部,每一字下先釋其義,次解其形,其下又引不同於小篆之古文、籀文、小篆等體及通行俗書,共一千一百六十三字。),到宋朝,有鄭樵的六書略,依六書分類;歐陽修的集古錄,趙明誠的金石錄,都對文字的整理分類,有很大的貢獻。清朝由於政治因素,研究文字學的風氣達到鼎盛期,有阮元作積古齋鼎款識,考識甚詳。此外,段玉裁的說文解字注,朱駿聲說文通訓定聲都是文字學史上貢獻卓著之書。民國以後,以羅振玉、王國維、章炳麟等亦均有其著述。到了今天,中國文字面臨新的挑戰--- 把文字用在資訊工具上--- 中文輸入的問題。
我在前面曾強調過,要解決中文輸入必須利用小鍵盤,小鍵盤上文字只佔26鍵,26鍵怎麼夠用?如果想要多用幾鍵可以考慮: 1、標點鍵,2、數字鍵,3、大小寫字母分辨鍵。
標點鍵不宜用,理由很簡單:如果輸入一篇文章,最常用的就是標點。標點鍵要是被佔用了,用標點時,就必須用其他的控制鍵來辨識在什麼情況下是文字。那時,最常用的符號反而成為最麻煩的。故,此路不通,絕不能佔用標點鍵。
其次,數字鍵也有其困難,因為資料處理時,數字往往比文字多,與標點鍵不能使用的理由相同,此路不通。
再如將大小寫字母都應用上,又增加了26個符號,看來理想得多,尤其是用中文時,沒有大小寫的道理,為何不順便利用呢?這裏牽涉到一個問題,中文輸入是個根本的大計,關係到中文資訊處理的遠景。我們要知道,在遠距電傳打字機上,是沒有小寫字母的,我們既然要遷就現成的系統,又不能放棄利用中文電傳的功能,因此,最好不要用大小寫鍵。此外,大小寫鍵字母的轉換又要多按一鍵,用起來多麼的不方便!因此,只有一條最艱險的路可走了!不論用什麼方法,一定要用26鍵來完成。
英文是拼音系統,我國也有注音符號,且不論注音字母有多少,用注音輸入能不能考慮呢?
當然可以,電信局已經用得很成功,可是用在什麼地方與其成敗有相當大的關係。電信局查號非常適合,你一接通104 ,告訴服務小姐一個名字,你透過電話傳到她那邊的是聲音,只要讀音八九不離十,她立刻已完成了輸入的手續。但是由於國語的音只有一千三百個,而文字有幾萬個,重複率太高,所以你必須再加以說明那個名字的相關定義,服務小姐可以作第二次的選擇。
問題在一般性的資料處理,我們也提過「盲目按鍵」是先決條件之一,就以一萬五千字的應用來說吧!一千二百個音,其重複率已超過了百分之一千,再以「一」字為例,這個字的同音字約有一百,用什麼方法作第二次選擇?用眼睛?那就不符合「盲目按鍵」的原則了。
更嚴重的問題是,除非是專業人員,鮮有人能正確地拼出一萬六千個中文的讀音!不瞞你說,「別」字加上慣用的「鄉音」字,我個人所認識的五千個中文字中,有三千個讀音都不正確,你比我強多少?就算你正確拼出八千字吧!(專家不過如此!)還有一半的字你無法使用。再如希望能將所有中文全用上,四萬多!天曉得世上有沒有這個人?
很顯然,如果注音可行,中文輸入早解決了,別人不是傻瓜,動腦筋的中國人可多的是!
四角號碼呢?同理,如果可能,用不著等到今天。
天下只有一條路最實在,就是下死功夫,千萬別想找現成的、簡單的,你想想吧!難道只有你一個人認為中文輸入重要?
我的看法就是這樣的不通情理,我相信有不少專家學者已經下了功夫,已有了不少成就,但事實是沒有一種方法宣告成功。我在能力上,學識上遠不如他人,再要去參考他們的,學一些技巧,到時只會走上他們已開發出來的大道上,永遠走在他們後頭。
因此,我一口氣買了五本小字典,把裏面的字一個一個剪下來,不管部首,也不管筆劃,我存心要走一條新路子出來。
最初的構想是,文字既然是人用的,人要用在什麼地方呢?不外乎大自然的事物、人造的工具器械、人際的關係以及無法歸類的雜類。
很幸運的,一點歷史知識幫助我釐定一組最重要的「字母」,那就是漢儒所強調的「陰陽五行」。這是中國哲學,理化的基礎,對文化的影響極為深遠。我當時也希望這種影響能在文字的結構上呈現顯著的反應,那麼我就能減少一些未知因素。
這點幸運影響之大,簡直可以視為我成敗的關鍵,在其後幾年的努力中,幸而有了這七個字母恆定不移的信心,就如同天象中的七斗,居其所而眾星拱之,我才能用各種不同的組合去試驗、去分析,漸漸地,一個一個地,找出其他的字母來。
這七個字母也有點巧合,就是「月」字,月在文字中用得不多,而我把它視為陰陽的陰字的代碼,是否老祖先們早有遠見不得而知,竟然有個肉字旁寫成與月字一樣(至少演進到今天完全一樣了),於是日字成為陽的代碼,其他金木水火土分別就位。
有了七個字母,我們開始分類,先將與這七種「元素」意義上有關的字歸併在一起,大約已「解決」了四分之一。再下來就找不到任何線索了。每天把這些字搬來搬去,剪了幾十本字典,又排列組合了幾千幾百次,最後勉強訂出了第一套字母表,並定名為「中文形意檢字法」,於民國六十七年五月出版並於內政部登記在案。
第一套字母是這樣的:「日月金木水火土,人心手足口耳目,王石山虫魚犬馬,衣言絲草竹」,除字母外尚有輔助字形120 個。用這些字母,我們把字典的8,000 字經過編碼列序。如若每字僅取三碼,重複字高達8% ,再若將輔助字形用輔助鍵(即等於增加26鍵),重複字則降0.5% 。
至於字母的安排,我也曾考慮過與使用頻率的配合,(在後面將進一步分析)但「使用頻率」本身就很難定義。譬如說,據交大統計,「的」字使用頻率最高,那是根據報紙上的文章而來,如果用電話號碼簿做對象,怕找不到幾個人用「的」字做名字。同時在資料處理上,文章只是很小的一部份,絕大多數是人名、物料、數字,那麼,使用頻率應該以那一種為標準呢?於是,在初期我只能按分類來安排。
不論如何,我自知離理想的目的尚遠,用52鍵不能接受,用26鍵,8%的重複率太高,而使用頻率我也無從下手。充其量,到現在為止,只能證明這條路似乎可行,結果如何還有待繼續努力。
民國六十七年七月,經過好友林俊甫的推介,大周建設公司答應允支持我做進一步的研究工作,並為我聘請台大中文系的沈紅蓮來協助我。
這一次是為了實用,我們選定了國語日報大辭典的字彙為準,先將字彙編卡,再選取字母組碼。
這時,由於一個極偶然的機會,我在中華書局看到了王安電腦公司的三角號碼,其對我的啟示;編碼絕對可行,但是僅僅只為輸入的編碼便制定一套方法,而這套方法與該字本身的組成並無實際關係,這樣只能解決一半問題,另一半組字的問題還要頭痛一次。
怎樣能把中文字形組合起來呢?我假設有一套基本字模,如同英文打字一樣,將這些字模裝在槓桿的一端上,只要我能用輸入碼控制這槓桿,就能依序把字拼湊在一起。假定上述條件成立,那我應該如何開始?
這個假設很大膽,到最後我終於放棄了,因為困難太多無法實行。但是這個假設對後來發展出來的「向量組字法」有決定性的影響,因為如果沒有這種假定,我永遠不會找到組字的法則。同時,如非這個假定在先,我的取碼方式也不可能與組字緊密地結合在一起。
這是我在經驗中學得的一個定律:「要解決無數難以解決的問題,唯有先假設已解決了某些問題,再來專心考慮剩餘的其他問題。」
假定字模已有,多少字模是最少而最必需的呢?這個問題又牽涉到用字多少?以什麼為取捨標準了。
我再作一種設定,如果以一台打字機來考慮,常用字三四千個應該夠用了,比較困難的字暫時不去管它,先就組合率高的下手。
有了方向,問題就單純了,我先取第二代組碼出來的字研究,才發現當時的歸類方式大有斟酌的餘地。
因為要組合字形,就必須瞭解中文字形的結構,中文是方塊字,原由象形字轉變而來,那是因為工具演進與使用者的習慣所致。
象形字恰如其名,是先民根據事物的形象,以單純的線條簡化而得,誰都知道,畫圖不是人人能勝任的,需要觀察力及技巧的控制運用。因此,當文字的應用日漸普及時,就令象形中優雅美觀的圖形,慢慢地僵化、符號化,圓的變成了方的,曲線成為直線(你不妨試試,直線遠比曲線更容易畫)。
再其次文化的層次提昇,文字的表達面更廣,新字的需求應運而生,古人歸納了一套造字法則,即是六書:「象形,指示,會意,形聲,轉注,假借」。其中對後世造字貢獻最大的就是形聲字了。
形聲是一半用形,一半以音的功能結合字。由於象形字體本身己具備讀音,所以形聲字並沒有增加「字形」本身的複雜性,而僅僅提供了字形的組合原則。
時到今天,我國文字絕大多數是形聲字,根據這個原則,我也找到一個方向,那就是利用形聲字的結合原理,將字形分為「字首」及「字身」兩個部份。
這是一個新的突破,根據最初的分類,在四千個字中,我找了大約一百多個字首,三百個字身。以四百個字根可以組成四千個字,雖然還嫌麻煩,但己經小有進步了。更令我興奮的,這一百個字首與三百個字首所組合的字,實際上約有一萬多個已見諸於字典中,而我沒有收集在研究的資料裏。
受到這個鼓勵,我們再努力整理,設法找出其中最佳的組合。
有一點已經是肯定的,就是以廿六個鍵作為輸入的代碼,那麼在取碼時怎樣才能得到最佳的組合?要配合組字的規律,要顧及取的碼數少而又能避免重複字,又要考慮組字的要求,因為根據多年經驗,只要有充份的耐性、有人力、有時間,總有一天會找到一種最理想的字母代碼。可是組字問題如不先行解決,決定了代碼而不能將字形配合輸出,其結果還是一場空。
當我們最後用電報明碼作了一次分析後,我終於有了決定的根據。分析的結果是,字首240 個,字身有1200個(很多字身只用一兩次),不能分為字首及字身的字多半就是字身本身,它也同時是完整的文字,這類字有2500個。
數據上證明,既然字首有400 個,假若多收字,字首必然增加,但估計不會超過400 個。我們已有26鍵,每個鍵一碼,26鍵只能代表26個字。因此,240 個字必須是26^2,換句話說,必需用26鍵取二次,二碼的組合有676 種,足夠包含400 個字首了。
我再解釋一下,若字首有400 個,字首取碼必須大於400 個,才能避免重複,因此字首取一碼至二碼。
再看字身,字身有1200個,同理,二碼又不夠了,只有增加到三碼,組合高達17576 種,看來有些浪費,但是不這樣做就解決不了問題。
字身取一至三碼還有一個妙處,因為很多字身也是一個完整的字,其中仍然可以分為字首及字身。我們且假定為第二字首及字身吧!第二字首也可以符合字首取一至二碼的規定,在組字時妙用無窮,藉著這方法,我們不僅可以組合出現有的所有文字,還可以依循老祖先六書造字的法則,組合出幾萬種創新的文字來。至此,中國字不再是「死字」,它可以和拼音文字一樣活用,而且更具力量。
至於組字的技術問題,我們將會進一步地說明,現在我們必須回到輸入的原則上去,這樣你才會有個完整的概念。
大原則確定了,字首取一至二碼,字身取一至三碼,一個完整的字形,則是一碼至五碼。
在編碼技術上,最重要的是要容易學習及應用,要容易學習必須根據一套簡單的方法,絕不能靠死記。然而中國文字已經存在,不容改變,不論用什麼方法整理,都避免不了空碼的事實,唯一的例外便是回頭採用電報明碼的方式,按部首筆劃順序編碼。
我們且看看這種死記的方式有什麼優劣點?其優點是收集一萬字,就是一萬個號碼,絕對不會重複。電報明碼已施行了幾十年,如果能解決問題,豈要等到今天來頭痛中文資訊問題?
有人提出了一個醫治頭痛的方法,就是重新編碼。電報明碼字太少,加字不就得了?加多少呢?加到一萬六千字好了!至於一萬六千字夠不夠用呢?根據戶政資料統計,目前國內一千六百萬人口,人名用字是一萬八千多字,而且最妙的是,每月會「新生」字彙十餘個!
「新生」字彙?你沒聽說過吧!理由很簡單,新生的嬰兒需要命名,有些家長是飽學之士,拿出康熙字典來找字,誰能說這不是「中國字」?只是你沒見過而已!有些家長不識字,但他有權給他兒「畫」一個字,今天的社會一切依法行事,誰敢說這樣不合法?再加上鄉鎮公所工作繁忙,一切文件都要用手抄,一不小心,一個字多一點或者漏了一橫,白紙黑字,原始文件在此,別人誰敢改?一改說不定便是偽造文書!
今天如此,明天也不會好到那裏去,除非國家有套文字標準,否則字彙只有一天一天地增多。如果訂標準,誰來訂?訂多少字?康熙字典中的字我們認不認帳?要認帳,很簡單,最少也要四萬三千多個!
因此重新編碼雖然勢在必行,但絕非憑幾個主觀地選定幾個字,就可以視為標準。萬一有位仁兄突然變成新聞人物,而他的名字未編入碼,你總不能叫他XXX吧!再往遠一步想,有一天我們要用電腦來整理固有文化,卻發現一大半的古字,電腦都不認識,那時怎麼辦?難道怪我們的文化太不識相?
此外,死記絕對行不通,目前八千字的電報明碼的專業訓練是半年,不僅半年是段漫長的時間,那份死記的苦功怕也沒有幾個人受得了。假若將四萬個字連續編碼,老天!要學會它恐怕不是電報明碼的五倍,而是五十倍了!
有專家認為,至少該有套「交換碼」,不用人來記,只需放在電腦記憶體中,不論各家電腦用什麼碼,有了交換碼為標準就可以互相通聯、交換資料。
這也是中文資訊的奇妙現象之一,同在一個國家體系之中,用同一種文字,可是彼此之間卻要用「交換碼」,你或許聽說過這個名詞,也可能沒有。如果我們用一個例子來說明一下,可能你也會啼笑皆非。
且假定每一個電腦代表一個「區域」吧,外國「區域」很單純,全部都用英語,可是我們大中華民族,地域觀念特別濃厚。因此,每個「區域」要用一種語,也就是說,每個區域間的人民,都無法用彼此能懂的言語溝通。
這就是目前中文電腦世界,每家都有其「特定」的輸入方法。輸入的資料,除了同種的電腦,任誰也無法共用…,這是無謂的浪費。同樣的工作、同樣的資料,在不同的系統上,就要重複地做一次,甚至無數次,今天國家的人力財力都有限,怎能這樣下去?因此,遂有了交換碼之議。
可是「交換碼」行得通嗎?國科會努力過,結果卻因某位自命高人一等的人士,堅持要用他的方法一統天下而告流產。其實,交換碼只是把一般用的文字,依某種順序排列一下而已。既不能當輸入碼用,放在電腦中也徒增空間。但,如果有它,至少在輸入方法未能統一之前,不失為可行的「臨時通道」。不過,它必須有個先決條件,就是要有包羅所有中文字彙的「雅量」,只憑在字典上抄16,000字就號稱交換碼,請想想,其他的三萬個字難道不是中國字?我們不認識是我們學得不多,我們不用是我們用不到,但是,代表國家的交換碼,怎能只顧目前的需求,只因暫時能力不及,就斷然否定所有的傳統文字?
當然,我們今天的生存不能忽視,可是,難道沒有更好的方法嗎?如果大家肯捐棄私見,不計名利,共同公開討論研究,公道自在人心,我相信必然有個合理的結果!
不論如何,我決定採用自然編碼法,取五碼的好處是它的排列組合有一千多萬種,任何中文都可以容納進去。又有人認為五碼太浪費,我不同意,我計算過三萬五千個字彙的平均取碼是4.1 碼,英文據一般統計是4.5 碼,為什麼沒有人說英文浪費?同時,節省儲存及傳輸的方式很多,片語、縮寫字都是最有效的方法,在一千多萬種組合中,我們正可以充分應用這種功能(假如你已用過我的倉頡輸入法,會發現我實際上只用了24個字母,另外兩個就是用來做這種工作的,我還在發展一種片語資料庫,有24^4種片語功能,卻只佔64KB!)。
根據我的理想,中文應和英文一樣,輸入碼、輸出碼、內碼及傳輸都是一體的,這樣才會發揮其最大的功能,也才是一勞永逸治本的良策。
這些原則確定,只剩下一件事要做了,就是選出能代表字首字身的代碼來,最後挑出字母。
這一步不難,尤其是現在我有了電腦,可以節省大量的時間、人力,但在當時,每假設一字母後,所做的工作如次:「將一萬字的卡片一一編碼、校對,編妥再將卡片依字母順序排好,再將同碼的所有卡片找出,研究其同碼的原因,以及避開這種同碼字的方法,最後再訂一套字母。」
週而復始,一個月最多能整理1.5 次,同碼重複字並不難減少,難的是所有字母必須有分類上的意義,不能只為避免重複字而決定。除了字母必須有意義外,輔助字形必須與字母能扯上令人容易聯想的關係,否則不易學習,難為人接受,而減低其價值。
有人認為重複字的組碼法才最理想的方法,如果能透過很合理的規則將重複字完全避免,那當然好,但只是為了消除重複字而削足適履就值得商榷了。以「晚」及「冕」為例,在文字學上都是「日」,取碼相同,只有看位置,一個在左,一個在上可以分辨。為了這個理由把所有在左側的「日」都加個「左」鍵顯然是浪費,只加「取碼相同」的字,那又與「重複字」的定義有何分別?
為了節省篇幅,其中的過程就不用提了,我只在此把我曾印書出版的第二代,第三代與現在正在使用的,列表做個比較:
第一代 日月金木水火土,人心手足口耳目,
王石山虫魚犬馬,衣言絲草竹。
第二代 日月金木水火土,人心口耳手衣竹,
交叉紐斜點縱橫,廿田山十卜。
第三代 日月金木水火土,人心手口田草竹,
交叉縱橫紐斜點,衣西山又卜。
現在 日月金木水火土,斜點交叉縱橫鉤,
人心手口,側並仰紐方卜。
由上表中可以看出,除了日月金木水火土及人心手口外,其他都曾有不同選擇。同時,由第二代起,一個新的構想加入了,就是筆劃,到了最後一代,筆劃更擴大為成為字形。
這種轉變是經過統計分析得來的,但也恰好與理論配合,成為一種很自然的結果。
在理論上說,文字是人用符號藉以表達思考概念的,人的思考概念首為哲學思想,次為人生,對於這兩點,我們整理出日月金木水火土,人心手口作為字母。另一方面,中文是以筆劃及形狀來表達其差異的,在筆劃中,我們選擇了斜點交叉縱橫鉤,在形狀上,我們選擇了側並仰紐方卜,應用時也頗差強人意。
現在的26個字母,留下X ,Z 二鍵留待擴充之用,在我的構想中,有三種擴充的方式:一是重碼字,我以X鍵(在宏碁的天龍系列上是用Z 鍵)來處理,目前我們重複字約1%,但若來者不拒全部收齊,可能會增至2%,一鍵可夠應付。其次為縮寫字,譬如說「金屬氧化半導體」這七個字在應用上極不方便,我們可以視為金氧半的縮寫,寫成「金氣」,簡單明瞭。「金屬結晶」寫成「金晶」也是順理成章又有何不可?(當然我們不能越俎代庖,這只是舉例而已!)
前述這些字是我們的字形產生器第二代功能,它能組合二百至三百萬個「怪」字,但絕對符合取碼規則,這些字一點也不佔空間,用不用隨你。
第三種擴充的方式就必須增加一片64KB的模板,我們要預先選定所有的專有名詞,常用的片語等字數在二字以上的,多多益善,用最精簡的資料結構方式,我估計至少可以存24^4種,而在使用時當作一個單字用,只是首碼為Z而已!
這一來,中文的傳輸及儲存將是精簡無比!
再談談字母各鍵的安排與人體工學的關係,由於所收的字很難有個標準,有人主張以最常用字(據新聞報紙用字統計,約有三千字),也有人主張以學生字典(約八千字)。不論一種,都有缺點!因為對象的不同,字彙的使用頻率就亙異。一種編碼方法,要用各種情況,就不能以偏概全,我認為面面俱到是不可能的,只要能符合大前提的要求,已經是難能可貴的了,我的前提是這樣的:
1 、字母的分類牽涉到原理、記憶與使用,絕不能因為任何單獨的理由而令之支離破碎。在分類中,基本類有哲理及筆劃,次元的有人體及筆形。要變動只能在各類的字母中,前後調整。
2 、要使字母朗朗上口,就必須顧及音韻,尤其在未來使用時的字母排序上,要充分利用字母的背誦性,才能順利地發揮其功能。舉例而言,如果你不會背九九乘法表,對做算術一定很不方便。同樣地,如果你不會背英文字母,查英文字典也會增加不少困擾。因此,中文字母一定要會背誦,要能背誦就必須顧及其音韻的抑揚頓挫。
3 、在人體工學而言,食指用得最方便,其次為中指,最難控制的是小指。對左右手而言,絕大多數人慣用右手。因此,右手手指又比左手手指方便。在鍵盤位置而言,文字鍵有三排,中排最佳,因為打字時,係以中排定位,字鍵使用的頻率高低應以前述因素作通盤的考慮。
有了前面三個前提,再去根據組碼規則,選擇取碼的樣品,一一分析比較,其過程之艱辛,不足為外人道。更由於我選擇的樣品是康熙字典中的35,000字,而這35,000字的取捨也有待進一步的斟酌。雖然最後確定了字母的順序,我仍然覺得不夠理想。
為了測試字母順序與人體工學上的配合是否妥當,現在且用教育部頒訂的4,803 字為準,編碼統計於後,以供參考。(註:由於編碼小有疏忽,多收了九個字,致成為4,812 字,但無礙全部取碼的正確性,故未加更正。)
在表中,比較不符人體工學的有「N」鍵(右手食指下排)以及「K、L」兩鍵相反,這是基於前述第二個前提的考慮所致,「O、P、Q、R」四鍵係分類的限制,其餘尚差強人意。
--------------------------------------
字母 一碼 二碼 三碼 四碼 五碼 小計 使用頻率
日A 96 137 139 121 30 523 2.70%
月B 220 235 336 209 85 1085 6.61%
金C 128 116 101 135 106 586 3.03%
木D 194 191 164 143 38 730 3.77%
水E 267 78 62 124 73 604 3.12%
火F 116 293 100 111 96 716 3.70%
土G 126 173 159 158 52 668 3.45%
竹H 366 347 425 216 39 1393 7.21%
戈I 272 283 229 219 85 1088 5.63%
十J 186 247 158 133 74 798 4.13%
大K 91 142 152 180 44 609 3.15%
中L 132 196 224 161 34 747 3.86%
一M 308 314 415 270 57 1364 7.06%
弓N 165 186 206 119 36 712 3.68%
人O 313 323 255 165 78 1134 5.87%
心P 124 123 177 109 37 570 2.95%
手Q 235 83 63 58 24 463 2.39%
口R 264 299 226 256 115 1160 6.00%
尸S 156 154 170 120 39 639 3.30%
廿T 271 177 179 121 38 786 4.06%
山U 55 174 130 263 115 737 3.81%
女V 233 71 98 133 52 587 3.03%
田W 69 132 172 106 18 497 2.57%
重X 87 24 20 23 7 161 0.83%
卜Y 338 289 224 81 26 958 4.95%
小計: 4812 4787 4584 3734 1398 19315
每字平均取碼數: 4.01
---------------------------------------
至此中文輸入的說明暫告一段落,否則我們的篇幅就不夠了。
我前面說過,輸出之假定是用槓桿打字頭,很明顯的其中技術困難重重,幾百種字鍵倒可以解決,如何使字鍵放大縮小,改變形狀,改變位置呢?
我當初用的只是一種工作的方法--- 各個擊破--- 並不是說將未來的希望全寄托在打字的技術上。
我另外有一個構想,是用光學透視的方法,可以將各種字形經過反射透視鏡組合起來,用在打字機並不困難,後來發現採用縮底片,幾千個字都可以濃縮在一片底板上,再經輸入碼改換成座標位置,即可將字形輸出,技術上確無困難。事實上我也開始動手設計,但問題出在輸出之印字頭,必須用半導體技術來解決,也就是利用半導體將光轉化為熱,再用熱印在熱帶上,熱色帶受熱會將字熔在普通紙上。
研究本身是相當大的投資,我費盡心力希望做出便宜而經濟的打字機來,要達到這個目的,我研究出來還是不行。必須能工業化大量生產。我先做好實驗,再找人投資,一百個投資者有一百個人要求專利保障。因之,我拿熱字頭及熱色帶去申請專利保障,不幸被批駁了。理由是樣品做得不夠好,不夠成熟。
大家都知道熱印字頭目前是最便宜最快速且無噪音的印字方法,但是卻無法普遍被人接受。原因無他,只為了熱字頭必須用熱感紙。假如一台打字機只能用一種特殊紙,它的性能再好,用起來也不方便。因此熱色帶如果得到專利,它本身就是一件極有市埸的商品,它可以使熱打字頭取代目前大量被採用的衝擊式打字頭。
朋友們!我已心力交疲,我申請專利的目的是希望不被一些唯利是圖的商人壟斷,但是既然得不到專利,我寧願你們快想法做出來,至少不要落在外國人手中,再來賺我們的血汗錢!
熱色帶的試驗很簡單,當然商業用品要考慮其配方及多方面的性能,但試驗其可行性卻簡單不過:「用最薄的塑膠紙(最理想是鋁箔,是熱的良導體),大約0.01MM至0.02MM厚,上面塗一層易熔的色素如同腊,或者用奇異墨汁(那種易燃的),用時可將鉛字加熱,在背面輕輕一壓,字形就印在紙上了。」
如果你有錢,希望你快先申請國外專利(你有了專利,不妨賣給我),國外的有了,國內或許有希望。不過你要注意,一般熱印字頭只有攝氏60度的瞬間溫度,你必須多方試驗,降低色素熔點。再不然就得提高熱印字頭的溫度,那就要用到半導體的技術了。
再談中文字形吧!由於前述專利受阻,無人敢投資,我又無力生產,因此,中文打字機一直無問世。幸而微電腦適時大行其道,我便將全力放在這方面。
英文的字形出現在電腦上,是利用座標點的掃描完成的。一般說來,電腦顯示器上有512*256 點,或者是小一點的256*192 點,再大一點640*512 點,這代表些什麼呢?我們叫它顯示密度,也就是指我們所看到的光點數。以512*256 為例,512 點是指顯示幕上從左到右可以顯示512 個光點,相當於有512 個小燈泡,可以控制其明暗。256 則是指上下共有256 排燈,換句話說,就是一共有256 排,每排512 個小燈的顯示幕。
那麼英文字怎樣控制呢?最普通的就是用5*7 的燈陣來表示,我們再用前面用過的0 與1 的方式,寫一個「E」字,只是為了讓你看得清楚,我們用「.」代表「0」,用「鬱」字代表「1 」,其結果是:
鬱鬱鬱鬱鬱
鬱 . . . .
鬱 . . . .
鬱鬱鬱鬱鬱
鬱 . . . .
鬱 . . . .
鬱鬱鬱鬱鬱
我相信你一定看得出這整體的視覺反應,是個英文字母「E」字,在顯示幕上,表示1 的地方燈就會亮,0 則不亮(當然也有反過來的做法)。
由於英文字母很簡單,5*7 的點陣就能把明暗的特徵表達出來。其原理是,每一筆劃與另一筆劃之分辨,全賴二者之間的反差現象。明確地說,字形之辨認,端視對比色的排列訊號與我們視覺感應所產生的效果。英文字母之特徵在於不論橫向縱向,其對比差異不超過五次,以筆劃論則不超過三劃,因此,他們只要5*5 的點陣就夠了。
你會問,能用5*5 為何還要用5*7 呢?那是由於美觀及避免誤認所致,由於英文字母中有斜線也有弧形,這些用單純的橫直點來表示不夠美觀。再加上還要用阿拉伯數字,其他符號等,太簡單易生誤會,5*7 的變化多了七分之二,辨識性就理想得多。
當然,5*7 並非最理想的,只是最經濟的而已,點陣密度愈大愈美觀,辨識性也愈強。現今美日高級的電腦,也已逐漸走高密度點陣的路了。尤其是日本,他們為了要與漢字共用,英文字母已用到11*24 。
中文呢?中文該用多大的點陣?這又得分幾方面來說了。首先我們要知道,最經濟而又能分辨大多數中文的點陣,以多少最理想?其次,我們把全部中文收羅進來,又應該是多少?這樣我們才能做詳盡的分析。
最經濟的條件是要配合電腦的結構,我們前面說過,電腦的最基本辨識單位是字元,也就是八組的開關,在此我們將之正名為八個點位或位元。電腦顯示幕上的光點,是電子束在陰極射線管中,受到水平向及垂直向的控制後,所產生的座標位置。正常情況都是先水平掃描再一行行地向下移(也有將陰極射線管橫放,以致先見到垂直動作的),由於電腦以八個點位作為一單位,因之橫向最好用八的倍數,縱向雖比較不重要,但如能用八的倍數,則更方便。
為什麼呢?由於電腦設計之初,以英文為主,英文只要5*7 的點陣就可以了,而且英文及符號只要94個,全部放在一起,直接用點陣儲藏,其空間要多大呢?94*5*7是3290個點,而八點為一位元,那麼3290/8為412 個位元,也就是相當於0.4 千筆可以放到一片小小的積體電路器中。
這片積體電路器都是放在顯示器線路中的,一旦某一字母的訊號傳到,立刻即可將相關位置上的光點訊號送出,直接了當。中文不然,我們無法用英文的這種方法,原因是字太多了,顯示器本身是個附屬機構,一切作不了主,主系統那邊要遙控的話,也有一定限度。像中文儲存,一萬個字最起碼要320 千筆,誰也控制不了。
因此,還得想別的辦法來處理,方法之一,也是目前最理想的方法,就是利用繪圖的功能,把中文當作一個圖形來處理,這一來,就必須是個能繪圖的電腦了。(注意市面上有很多電腦都號稱能繪圖,其中有很多是假的。這種稱為SEMI GRAPHIC,他們是先設計好一些圖形碼,視作英文符號之一,然後可以藉積木方式拼出圖形來,而實際上,並不是真正的圖形處理。)
有繪圖功能的電腦,在能力上就比普通電腦要強,當然成本就高,其中必須加一片「螢幕記憶板(SCREEN MEMO )」。它的功能是先要把圖形畫在其中,然後再用掃描方式傳到螢光幕上。
很顯然,把記憶中的圖像搬到螢幕上,就必須配合電腦傳遞的方式,電腦既然用位元為基礎,你用一個,兩個或三個位元都沒有多大問題。但是如果用1.3 個或2.5 個位元,那可就麻煩了。
舉個例子來說,你上學時總要揹書包吧!書包是根據書本的大小設計的,你今天如果設計一種書,當然要遷就書包大小,如果你設計的書比書包大,別人帶起來不方便,除非你不在乎別人用不用,否則不是你替別人改書包,就是你改書本的尺寸。
其次,我們還要考慮中文字的筆劃到底要用多少點才適合?我們只能這樣說:「上下十六點可以分辨的字約佔80% ,十八點可以辨識的字佔85% (上下可以不採八的倍數),廿四點可以分辨的字佔99% 。左右八點能分辨的字佔30% ,左右十六點可分辨的字佔93% ,廿四點可分辨的佔99% (以上數據僅憑我們發展各種字體所得的實際經驗,尚有待學者們整理)。」
點數愈多自然愈理想,但是成本相對提高,在我個人的考慮中,我選了16*16 作為低成本的用途,24*24 作為一般高級電腦之用,還有32*32 ,可供自動排版印刷用。
現在我就來解釋16*16 的作法與相關的技術原理。
16*16 實際上不能真正地令左右打十六點。各位知道,中文字形有很多是左右對稱的(這完全符合人的生理學,因為人的眼睛一左一右,形狀大小相若而方向相反,但上下則不然,所以你如果深入研究下去,會發現美感之產生與生理息息相關。),我們以一個「十」字為例,「橫」高一點、低一點影響不太大,但「直」卻一定要在中間。
如果直在中間,我們且假定直佔了橫向中間一點,左邊的橫再假定為七點,右邊亦然,總共是十五點,還剩下一點怎麼辦?加在右邊?左邊?或者把直加粗?
單線體是不允許任何一劃比別的筆劃粗的。因此,我們為了左右對稱,只能用十五點,至於上下,我們仍用十六行,因為橫在正中間反而不好看。一般說來,在中文的美學觀念上,上密下疏較為好看,你看看人的面孔就知道,如果眼睛眉毛橫在臉的正中間,是個什麼樣兒?
市面上有幾種電腦字體,左右還是用十六點,那些字是美術專家寫的,一個一個地寫的,一筆一劃都很講究。但是你看了會不知為何,有些「怪怪的」感覺,說穿了,就是因為左右不對稱,你不習慣!
一行多出了一點,十六行就十六點,這不僅不是浪費,卻正是我能用最小空間,收容幾萬個中文字形的最大秘密。把這一點學去了,我這八年心血也就變成你的了。
在武俠小說中,常有什麼「武術秘笈」的爭奪,無論成名多年的大俠,獨霸一方綠林,以及後生小輩,莫不摶命以求。我年輕時也做過夢,滿以為得到了一個訣竅,立刻可以學貫古今,其實那真是夢,而且是癡人說夢!訣竅是有的,懂了可以節省很多無謂的重複浪費。但是,不去下苦功,把這個訣竅與其他的相關知識融會貫通,那麼訣竅還是訣竅,它不會自已變成學問的。
因此,你如果真有心,我希望你看了下面的介紹後,還要多下功夫,進一步追求各種相關的知識,功夫下得愈深,你所得的就愈多,才能靈活運用。
前面介紹過排列組合的概念,不過還不十分清楚,我們再簡單解釋一下:「當我們設定每行有十六行時,我們就有16*16 個點,也就是256 點。換句話說,我們有了256 個位置。由於我們要在這256 個位置中畫圖、要寫中文,我們就必須賦與每個位置一個名稱,以便處理。」
命名的方法很多,顯然在這裏用數字最適合,而且要用座標的方式先取X軸的點位,再取Y軸的點位,我們可以順次命名為第一行第一點,第一行第二點… 。
再把文字省略掉,我們可以寫11、12、13… ,不過你看得出來超過10的點位就變成110、111、112…,我們無法知道11是指X軸或Y軸,更好的辦法是,統一取二位數,如0101、0102、0103…0111、0112…0201、0202… 。
這是十進位的寫法,對電腦而言,十進位非常浪費,一個位置要四個字元來表示!
其實,有種方法,在16*16 的點陣中,每個位置剛剛好只要一個字元就可以表示,要節省就要充分利用其有利的特徵,這正是我們採用16*16 的最大理由!
這種方法是二進位的延伸,叫做十六進位,是瞭解電腦最重要的一步。因此,我不厭其煩地把十進位,二進位及十六進位的對照表列在後面,以供比較及參考:
十進位 二進位 十六進位
0 0 0 0 0 0 0
0 1 0 0 0 1 1
0 2 0 0 1 0 2
0 3 0 0 1 1 3
0 4 0 1 0 0 4
0 5 0 1 0 1 5
0 6 0 1 1 0 6
0 7 0 1 1 1 7
0 8 1 0 0 0 8
0 9 1 0 0 1 9
1 0 1 0 1 0 A
1 1 1 0 1 1 B
1 2 1 1 0 0 C
1 3 1 1 0 1 D
1 4 1 1 1 0 E
1 5 1 1 1 1 F
你不難發現,在0 ~15,二進位只佔四個位置,或稱四位元,十六進位是一個數字,而十進位則要兩個數字。(實際上,十進位通常要佔一個位元即八個位置來表示,這又牽涉到其他枝節,這裏恕我不多做介紹。)
電腦雖然是用二進位的開關方式操作運算的,但是一大堆的0 與1 ,由人去辨識很容易混淆(記得我們前面提到的中文與英文字母之比較吧?變化太少不見得適合人類複雜的頭腦),所以人就把十六進位給自已用,而讓電腦它們去玩0 與1 的開關把戲!
各位也看出來了,前面我們說的16點,正好可以用0 到F 來表示,16行也用0 到F 表示,那麼我們就可以寫成01、02、03…0F、FE、FF。每對數字一個位置,同時由於每個16進位數字只佔四點,所以每對數字正好八點。換句話說:「16*16 的點陣上,每個位置正好以一個位元來表示。」這時,一切都明朗了,我們若要劃一橫,可以指定由某個位置到某個位置,直也可以,斜也可以,只是要注意:「斜只能畫對角線,否則不好看,也畫不出來。」(有種畫法是把斜分成幾段橫或直,見仁見智,但我沒有這樣做。)
你不妨用下面的附圖,按其中的位置寫出你要寫的字來,然後把座標值讀出,就是電腦字!
┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐
︱00︱10︱20︱30︱40︱50︱60︱70︱80︱90︱A0︱B0︱C0︱D0︱E0︱F0︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱01︱11︱21︱31︱41︱51︱61︱71︱81︱91︱A1︱B1︱C1︱D1︱E1︱F1︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱02︱12︱22︱32︱42︱52︱62︱72︱82︱92︱A2︱B2︱C2︱D2︱E2︱F2︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱03︱13︱23︱33︱43︱53︱63︱73︱83︱93︱A3︱B3︱C3︱D3︱E3︱F3︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱04︱14︱24︱34︱44︱54︱64︱74︱84︱94︱A4︱B4︱C4︱D4︱E4︱F4︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱05︱15︱25︱35︱45︱55︱65︱75︱85︱95︱A5︱B5︱C5︱D5︱E5︱F5︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱06︱16︱26︱36︱46︱56︱66︱76︱86︱96︱A6︱B6︱C6︱D6︱E6︱F6︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱07︱17︱27︱37︱47︱57︱67︱77︱87︱97︱A7︱B7︱C7︱D7︱E7︱F7︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱08︱18︱28︱38︱48︱58︱68︱78︱88︱98︱A8︱B8︱C8︱D8︱E8︱F8︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱09︱19︱29︱39︱49︱59︱69︱79︱89︱99︱A9︱B9︱C9︱D9︱E9︱F9︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0A︱1A︱2A︱3A︱4A︱5A︱6A︱7A︱8A︱9A︱AA︱BA︱CA︱DA︱EA︱FA︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0B︱1B︱2B︱3B︱4B︱5B︱6B︱7B︱8B︱9B︱AB︱BB︱CB︱DB︱EB︱FB︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0C︱1C︱2C︱3C︱4C︱5C︱6C︱7C︱8C︱9C︱AC︱BC︱CC︱DC︱EC︱FC︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0D︱1D︱2D︱3D︱4D︱5D︱6D︱7D︱8D︱9D︱AD︱BD︱CD︱DD︱ED︱FD︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0E︱1E︱2E︱3E︱4E︱5E︱6E︱7E︱8E︱9E︱AE︱BE︱CE︱DE︱EE︱FE︱
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
︱0F︱1F︱2F︱3F︱4F︱5F︱6F︱7F︱8F︱9F︱AF︱BF︱CF︱DF︱EF︱FF︱
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
你照這個方法,會發現一個字平均要費大約卅位元,如果以儲存二百個字首,一千五百個字身來算,大約要51KB,而這51KB可以組合出200*1500=300,000個不同的字形哩!
以上這種方法稱為「座標法」。
假如你還想節省一點,方法也有,你得花很多功夫,把各種字形中,形狀大小相同的各個「零件」找出來,集中放在一起,要用時就拿出來,那樣又可以省出30% 的空間來。原理很簡單:「以一個「零件」(我們姑且稱之為共用字形吧)佔廿位元計,如果有十個用到它,你必須耗費二百位元(這種字形在我的統計中,平均每個共用字形約八位元,每字平均共用四次,約有500 字),如果這種字多了,你的空間就很浪費。」假如你採用共用的方法,該字在應用時只需寫出其位址(在記憶體中,一般是以64K 為一頁,64K 正好可以用二個位元來定址,如同256 中用一個定址一樣,因為2^8=256 ,而2^16=64K)即可。因此,該字需20位元,用十次,每次只需2 位元,共20位元,20+20 為40位元。本來需要200 位元的字形,現在用40位元,已經節省了160 位元。
如果你還想節省,也有辦法,你要怎樣節省都可以,不過有一點要考慮清楚,空間與時間往往是兩個極端,空間的節省除了技術因素外(意思是說,技術上必需不能作無謂的浪費),只有用時間來交換。因之空間小了,時間也就相對慢下來了。速度太慢無法供電腦處理應用,這其間的微妙關係不是幾句話可以說明,這必須你能完全掌握住所有細節後才能明白。
我還用了一種指令的節省法,就是用一些指定的指令,來處理一些常用而特殊的字形,不過這種方法,你必須對基礎組合程式語言相當熟練才行,因為你必須知道如何「定義」指令。
有一種方法我可以介紹給你,是一種效率最高最容易處理的,而且正是我前面所提到的武林秘笈……九天玄陽真(旡水,音:氣)……!
當16*16 之點陣可以用一位元來定址時,也就是說一位元可以代表256 點中之任何一個位置,那麼這一位元視為16*16 點陣中字形的結構資料。結構資料這個名詞是我暫定的,我們必須用基礎結構程式來處理它,才能把它變成我們肉眼能辨識的字形。
當然,在此我必需假設你已瞭解基礎結構程式,否則我的困難便多了。
前面也提過,在16*16 的點陣中,我實際上只用了15*16 ,那多出來的16點……也就是16位置座標……怎麼辦呢?正好,我們恰恰需要16個特別的法寶,每個法寶有它獨到的功能。譬如說:「甲代表一種形狀,乙又代表另外一種,丙後面跟的資料需當作住址用,丁表示資料的位置要移動… 。」
這一來,甲乙丙丁等就可以和結構資料放在一起使用了,這個方法又將空間縮小一倍!
你會說:「這樣該夠了,不到20K 就可以存這麼多字,64K 都用不完嘛!」
別急!這些只是資料,資料還要經過處理,在處理的過程中,還要增加不少東西的!
要增加的最重要一項是例外字,我們談了半天字首及字身的組合,有些字並不是那樣輕易地就可以用字首字身來界定的,這些字也正是最討厭的一部份。在四千個常用字中,這類字約佔60% ,而在一萬字中,這類字降低到30% ,到了三萬字時,這類字只佔15% 。
你會覺得奇怪,為什麼選字愈多,例外字愈少?理由很簡單,前面也提過,在英文文法中,幾乎所有不規則動詞都是最常用的動詞。同理,愈是歷史悠久的文字,愈是沒有規則。此外,我們也提到過,象形字是我國文字的主體,後人根據象形發展的形聲字,才是我們採用的準則。因此,幾乎由象形字蛻變而成的字都是例外字!這種例外字,大約要佔25K。
在組合字之時,我們根據取碼規則,輸入了字碼,程式立刻就要先去找例外字。如果是例外字,立刻要按照例外字的規定處理;如果不是例外字,這才分析輸入碼何為字首、何為字身。由於字首字首身早已確定,已經存在記憶體中,所以不難分辨。
現在到了最複雜的一個步驟,每一個字首有它不同的位置以及不同的點位大小,同一個字身怎麼知道應該如何配合呢?
我的方法是:「把每個字首先分析,寫好字形,然後把剩下來的空位用指令表示之。」也就是說,每一種字首有一個特殊的位置指令,用來指示字身應該放在那裏,應該有多大?
而字身則每個字身又配有一種刪減指令,每一個刪減指令都要經過測試,不能把筆劃刪掉了,也不能把筆劃刪得重疊在一起,千方百計,要刪得均勻、好看。有時為了刪減的便利,連原字形也要改變,以便適合刪的要求。
舉個例子,「十」字很好刪,當它和水字旁組合時,三點水在左右向只佔五點,為了要組合必須刪掉五點。可是「十」字要對稱,只能刪四點或六點,刪四點很好看,但「十」又可以和金字旁組合,金字旁也是五點,如果只刪四點,必然會有一點重合,那可就難看了。因此,為了統一,「十」字只有刪六點,正好在字首及字身之間留一行空。
刪的時候,可以把左邊1、2、3 行及右邊的13、14、15行去掉,便只剩下九點的一個瘦十字架了。這時再把瘦十字移到右邊,加上水字旁或金字旁即可。
如果我們要刪「贛」字以便和三點水結合時,那可麻煩多了。「贛」字非常複雜,所以在寫這個字的時候,要特別小心,不僅要刪得好,不破壞字形,還要考慮它用的刪減指令能不能與別的字共用。如果刪減指令不共用的話,問題也很大,因為有一千多個字要刪,字首的種類又多,如果每個字有三種刪法,就將近有四千多種,加上每個刪減指令至少要佔三個位元(第一個是指令,第二個及第三個位元是各刪減的位置。)那又要花費12K 的空間。
在我的記憶中,那是幾年痛苦的經驗,刪減指令最難節省,在第一代的字形產生器中,刪減指令佔了8K的空間,第二代繼續努力,字增加了不少,但刪減指令只佔4K,這原是一件無法討巧的工作,只有靠一步一步的嚐試改進。
字形組合完成了,又面臨輸出的問題,這雖只是技術上的小枝節,可是也影響到速度及效率。我們常建議電腦生產廠商,把中文字形產生器放在顯示器及印字機中,這樣這可以避免傳輸速度的影響。
一般在輸出入介面中,不可避免地要考慮輸出入通道的選擇,訊號的安排與控制。這好比在一個工廠中,生產部門把產品造好了,他該知道把產品送到什麼地方去,是送去倉庫(磁碟機)?或送去再加工(系統記憶)?是送去外埠(印字機)?還是送到門市部(顯示器)?
送到不同的地方去並不是一句話,工廠有很多手續要辦,首先要經過品管合格(這由應用程式來負責)、審查訂貨單(由操作系統控制)、準備運輸工具(即輸入通道,也由操作系統控)、發貨、收貨、驗貨(都由操作系統統籌處理)。
這些工作都需要繁雜的手續,費時費事,要想做到迅速確實,就牽涉到很多既有的硬體功能與設計。以目前而論,一般微電腦的能力,多半是每秒9600個位元,也就是1200個字元。說具體一點,就是在傳輸資料時,每秒鐘最多不能超過1200個字元。
我們前面說過中文用16*16 的點陣,正好是32個字元。因之,每秒鐘最多能送30個中文字形!
每秒鐘30個字,如果一個畫面有600 字,就要20秒鐘才能傳送完畢,豈不把頭髮都等白了?
英文為什麼快得多呢?並不是英文字母點數少(其實以一個「字」而言,差不了多少),而是英文字形產生器(一片積體電路器)就放在顯示器中,在傳輸時只送代碼,一個代碼一字元。因此,英文每秒鐘可以送1200個字母,相當於240 個字彙。
如果中文用代碼傳輸,把字形產生器放在顯示器裏,也可以達到每秒鐘240 個字彙(當然,先決條件是中文字形產生器有這個速度。目前,我們第二代的字形產生器,每秒鐘只能組合120 字)。
說了這麼多,相信你也煩了,可是還有一點不能不提,就是組字程式。由於這種程式屬於中文電腦的基本結構之一,使用者沒有必要去變動它。而且,其性能的要求特別高,所以需用基礎結構程式語言來寫。
我們目前的發展系統用的是Z80 CPU ,當然就要用Z80 結構語言了。除了Z80 外,還有8080、6502、6800等。更上層樓還有8086、28,000,以及68,000等十六位元的結構語言,由於它太複雜,決非幾句話可以說明。因此,程式的內容,恕我在此不加以介紹。
我們要強調的,只是在寫作技巧上,很多人以為結構語言是外國人創始的,他們寫的一定好,這種觀念我不能苟同,我們曾經分析研究過許多高價買來的外國原始程式,發現其技巧不見得比我們強。原因很多,最基本的一項是需求問題,因為用結構語言寫程式的人太少,而要做的工作太多,沒有時間及必要去一而再,再而三的修改。
對中文組字程式而言,我個人認為不僅要不斷地改,要改得精簡、容積小、速度快,還要改得功能強、應用範圍擴大。因為,既然中文電腦比英文多一片中文字形產生器,成本就高了一點,如果我們不充分去利用它,用到它鞠躬盡瘁,那就是浪費!
一般寫應用程式的標準做法,是先做系統分析,畫好流程圖,再畫細部流程,最後才依照細部流程來寫程式,這是完全正確而且極有效率的方式。可是,在寫中文組字程式就不太適宜。因為應用程式的要求是在最少的人工下,以最有效的速度,來完成一個程式。這個程式是一種商品,商品並不能要求完美,只要求能合用,能賺錢。中文組字程式不然,它是中文電腦的心臟,也可能是千秋萬世的工具,它必須完美,必須毫無缺點。
以我們有生之年,我不相信會見到中文字形產生器功德圓滿的一天。我認為只有在我們開始著手設計下一代的中文電腦,有自己的圖形中樞,有自己的結構語言,有自己的操作系統及程式,我們才有希望徹底擺脫這種寄生的方式,擺脫層層之違章建築的不合宜方式,堂堂正正地邁入中文資訊的新時代。