第496章 大明式的計算機底層概念
第496章 大明式的計算機底層概念
朱靖垣下達了正式的命令,相關人員立刻起身領命:
「臣等遵旨。」
朱靖垣抬手示意,讓他們都坐回去,然後繼續問新的問題:
「說到要收集數據做計算,現在欽天監、工部、軍械部,你們的計算機夠不夠用?」
齊彥槐馬上回應說:
「感謝陛下關心,欽天監搬遷完成後,也同步啟用了最新的三型通用矽晶計算機器。
「單機計算力達到了每秒一百萬次,應該能夠滿足欽天監目前的計算需求了。」
新任的工部尚書汪萊也緊隨其後的補充說:
「托陛下的洪福,大明的矽晶計算機在這十年突飛猛進。
「應天新都城設計建設的過程中,同步部署了工部研發完成的三型通用矽晶計算機器。
「包括欽天監、工部、軍械部、都督府、皇家銀行、大明銀行在內。
「對計算力有比較強的需求的部門和機構的辦公區,都部署了每秒百萬次的計算機。
「其他機構也有了相同構架,算力略低的同系列型號。」
朱靖垣從兩人的回答中聽到了兩個關鍵詞。
每秒一百萬次容易理解,這是前世美利堅六十年代初計算機水平。
至於通用計算機,也就是使用統一構架,可以使用相同的程序,並可以拓展存儲空間和外接設備的計算機。
朱靖垣前世用過的計算機基本都是通用計算機。
這種讓後人習以為常的東西,在計算機出現的最早期,是很多人難以想像的東西。
最早的計算機幾乎所有設備都是專用的。
兩台計算機之間的差距,就好像後世的桌上型電腦和手機之間的差距一樣。
真正的通用計算機,也是在六十年代初期出現的。
IBM公司在1965年正式公開銷售的system 360系列計算機。
正是這第一套通用計算機,留下了每個字節八個比特的計算機底層慣例。
朱靖垣在十年以前,就給大明的計算機項目列了一大堆目標。
這些目標同時也是指導,直接提供了經過驗證的發展方向。
電子管計算機,大明只發展了兩代驗證機,根本沒有大規模推廣,就沒有繼續製造了。
按照朱靖垣的建議,直接鑽進了電晶體的方向,並且直接朝著通用計算機前進。
大明的工匠們努力攻關十二年,終於把這套東西做出來了。
朱靖垣在心中對比了一下前世計算機的發展脈絡。
第一台公開的大型計算機埃尼阿克在1946年誕生。
第一台純電晶體計算機崔迪克在1954年誕生。
第一套通用計算機在1965年公開銷售。
在自己的直接推動下,大明用了十二年的時間,走完了前世美國人十九年的路。
計算機的技術的發展速度加快了一半,時間縮短了三分之一。
朱靖垣當初是給了方向,後續幾年也陸續給了一些指導。
但是在登基前的這幾年,朱靖垣沒有持續關注,現在對他們的最新進展也感興趣。
於是朱靖垣直接站了起來:
「好,汪工、齊工,你們兩位帶我去看看,今天的會議就到這裡吧。」
周圍的眾人再次一起起身行禮。
汪萊和齊彥槐快步出列,少傅、司空兩個九卿也緊隨其後。
一行人在齊彥槐的引領下去了欽天監的機房。
到了門口的時候,齊彥槐伸手推開房門,然後馬上讓開一邊。
朱靖垣看到了機房內的景象。
大明當初的第一台計算機「道」,是用電子管為核心組裝的,當時占滿了一整個大廳。
現在的這台「三型通用矽晶計算機器」作為電晶體計算機,體積明顯小了一大截。
現在只剩下了一個占滿了一面牆的大型機櫃了。
機櫃側面是一個大型操作台,上面放著一台看上去好像前世的老式電視的東西。
電視前面的台子上是幾排規整的按鍵。
它已經有了顯示器和鍵盤!
周圍還連接著電傳印表機、傳真機、打孔機等外置設備。
房間裡面本來有幾個人正在使用計算機。
收到皇帝要過來的消息,都提前站在了計算機兩側等待,看到皇帝馬上行禮。
朱靖垣揮手示意,然後徑直走到了操作台前。
桌子上的鍵盤,就是自己當初設計的打字機用的那個鍵盤。
不過比打字機鍵盤更加複雜了。
除了五十六個打字鍵,周圍又加了一些功能和符號鍵,總共估計有一百個左右。
鍵盤的旁邊還放著幾份文件。
有圖表和文字說明,顯然是準備用於計算的數據。
而那台好像老式電視的顯示器上面,現在還顯示著一些文字。
就是自己日常用的漢字,加上世祖皇帝推行的句讀符號系統,以及一些夾雜其中的空位。
每一個字自己都認識,但是放在一起就看不懂了。
乍一看好像是亂碼。
仔細看的話,還能發現一些規律,似乎是用特定的單字和數字,組合表示特定的邏輯。
好像是某種程序語言。
只是把英文字母和數字都換成了漢字。
眼前的這一幕,這又讓朱靖垣確認了兩項重要信息。
這台計算機是能夠直接顯示漢字的。
更重要的是,他們用的程序語言,至少已經是彙編語言的級別了。
甚至可能是早期的高級語言了。
朱靖垣前世不是程式設計師,對編程用的程序語言也不是很懂,只是上學的時候在公共課上了解過基本的知識。
知道變電腦用的程序語言,大體上可以分成三個大層級。
機器語言,彙編語言,高級語言。
越往前的越接近機器語言,越往後的越接近人類語言。
越往前的語言編制的程序性能越高,因為可以直接輸入機器,直接進行物理層面的運算。
但是能夠執行的命令也越簡單,想要實現複雜功能的難度越高。
越往後的語言編制的程序性能越低,因為要經過讀取和翻譯,轉化成機器語言之後再去運行。
不過能夠執行命可以更加複雜,實現複雜功能的難度也越低。
在自己的前世,所有正兒八經的電腦程式語言,在最底層都是用英文表示的。
有少數程序可以在表層顯示漢字,但完全不成氣候。
其實程序語言不是不能使用漢字,因為早期程序語言本質上不是人類語言。
裡面的那些英文字母本質上都是邏輯和定義符號。
用數字甚至星星框框表示一樣可以。
只要程式設計師能夠記住,每個圖像代表的是什麼指令。
之所以都是英文而沒有漢字,是因為早期程式設計師都用英文,所以用英文去記錄和表示命令。
這種傳統就形成了限制鐵軌寬度的馬屁股。
最先建設鐵路的英國人,選擇的鐵軌寬度是正好容納兩匹馬行走的寬度。
這個與火車並沒有直接關係的數據,成了後世的標準鐵軌寬度。
計算機語言也是一樣。
計算機的基礎是電晶體,每一個電晶體可以看做是一組燈泡和開關。
關和開的這兩種狀態,可以參考燈泡是否亮起的狀態。
用二進位數來表示,就是0和1。
在大明的計算機器相關的研究中,工匠們習慣用陰和陽來代指。
每一個電晶體的兩個狀態,能夠表達的兩個數字,在前世被稱為一個「比特」。
在大明被稱為一個「數」,或者「爻(yáo)」。
爻就是傳統八卦符號中那些中斷和連接的橫線的統稱。
一整條連續的橫線是陽爻,中間斷開的橫線是陰爻。
開和關的意義,陰與陽的象徵,斷開與連接與執行,三者的意味天然趨同。
對大明的工匠們而言,這種命名都是理所當然的選擇。
人向機器傳遞的所有指令,想要被機器所識別並執行,都要轉化成一連串的開關命令。
計算機裡面的開關太多了,人們為了方便管理和使用,就將其分成一個個的小組。
前世最早的計算機是四個一組,最後的通用計算機是八個一組。
這樣四個到八個一組開關的開關命令的長度,在後世就被稱為一個「字節」。
在大明被稱為一個「字」或者「卦」,就是八卦的卦。
機器語言,就是直接輸入開和關兩種信號,可以想像對零和一兩個鍵反覆不斷地按。
實際上使用打空紙帶來執行的,用一個位置是否有空洞來表示開和關。
對二進位機器而言,他只能理解開和關。
比如說一組電路或者一項控制功能,在四爻(四位)機器上執行的方式是「關關關開」。
這個命令在機器看來,名字和意義就是「關關關開」,沒有什麼別的附加意義。
但是在人類視角下,「關關關開」只是一個編號,單純看這個容易混亂。
於是人類根據自己的設計思路,知道這個編號所代表的邏輯功能,用自己使用的人類語言中應該用什麼詞彙來描述。
美國人在自己的腦子和小本本裡面,記下「addition=關關關開」。
大明人在小本本上寫下了「加=陰陰陰陽」,或者是畫上三陰一陽的爻線。
無論是addition還是加,都只是人類方便自己記憶的「備註」
在機器裡面實際上都是在干「關關關開」的活兒。
要控制計算機,就要直接去控制四個開關,組成「關關關開」的效果。
最後計算機算完的數據,也用紙帶上對應位置的空洞順序,來表示一串的開和關。
人類再把這些有規律的開關,翻譯城人類能夠理解的語言。
最早期的計算機,是與人類語言完全沒有關係的,就看使用者怎麼去命名和解讀。。
但是這樣實在太麻煩了。
如果能讓計算機直接識別人類語言就好了。
關鍵是,為什麼是我這個人類,把自己的話翻譯成你這個機器的語言。
為什麼不能是我說我們人類的語言,然後你這個機器自己去翻譯成你們機器能理解的語言?
機器當然不知道怎麼幹。
於是人類給決定給機器做個翻譯器,或者說轉換器。
在翻譯器上輸入人類語言,翻譯器給機器翻譯成機器語言,再讓機器去執行計算。
計算機算完之後輸出,再讓翻譯器翻譯成人類語言。
這個想法是非常好的,這其實也是所有程序語言的基本邏輯。
程序語言的最終目的,就是實現人類直接說法,讓機器完全理解並完美執行。
只可惜啊,別說完全聽懂人話並完美執行了,單純的讓機器直接執行最基本的命令,都讓最早的研究人員們費老勁了。
翻譯器怎麼才能把addition翻譯成一連串的開關呢?
怎麼讓機器知道「加」是什麼意思呢?
看上去,好像只要做一個表格,左邊一列寫addition或者加,右邊寫「關關關開」。
告訴機器,我輸入addition或者加,你就去給我執行「關關關開」。
然而更進一步的問題是,怎麼「輸入」addition或者加。
輸入法這個東西,在後世看來很常見的東西,在早期電腦上絕對是黑科技。
就算是看上去能夠按鍵直出的英文字母,也要去干一個物理按鍵綁定字母表的活兒。,
否則機器不知道a是啥,c又是啥,根本沒有b數。
所以要再做一個表格,把一個開關序列綁定a,一個開關序列綁定b,一個開關序列綁定c……二十六個字母和標點符號數字都做好。
再再做一個表格,把這些開關序列綁定鍵盤上的按鍵,並在按鍵上寫上a、b、c……
我依次按下寫著addition這幾字母的按鍵,計算機收到按鍵對應的信號去查表。
找到了關關開關、關關開開、關關關關……等一連串的開關命令。
如果是英文系統,這時候就在屏幕上依次顯示addition幾個字母。
同時,這關關開關、關關開開、關關關關……這一連串命令,按照順序組合起來,就對應另一個命令「關關關開」。
如果是漢字系統,這時候在屏幕上顯示「加」。
最後,計算機去執行最後的「關關關開「命令。
輸入英文是一個相同表格有幾個字母循環查幾遍,漢字是設計兩到四層嵌套的表格逐次查一遍。
做到這些就已經非常困難了。
甚至於,對早期計算機性能都有了一定的要求……
最早的計算機字節長度是四位的。
一個二進位位可以記錄兩個編號,字節長度為四的話,最多可以記錄二的四次方,也就是總共十六個編號。
這甚至不能容納所有的英文字母。
要記錄所有字母,至少要把字節長度增加到五,這樣編碼容量增加到了三十二。
可以容納所有的字母,再加上幾個常用的符號。
但是還不能同時單獨輸入數字,用純英文單詞去拼數字就太噁心了。
於是又把字節長度增加到六位,編碼容量增加到了六十四。
這就能夠容納字母、數字、常見符號了。
所以六位的計算機,甚至於在計算機出現之前,就在打孔卡上用了很久了。
但是六位的情況下,字母只能有大寫或者小寫一種。
彙編語言也全部都是大寫字母。
如果用來輸出文字的話,全篇大寫字母看著也是很頭疼。
所以就繼續增加到七位數。
這樣就有了總共一百二十八個的編碼容量,對於英語而言基本圓滿了。
能表達所有大小寫字母、主要符號、十個數字。
以及換行、回車、刪除等常用的輸入控制命令。
美利堅制定的ASCII標準就是七位編碼。
後世的通用計算機字節長度是八位,因為IBM設計的第一套通用計算機,在七位的基礎上增加了一位校驗碼。
後來隨著技術提升,校驗碼被省略,八位編碼的容量就增加到了二百五十六個了。
相比最初的計算機,字節長度已經翻倍了。
這還只是英文,如果要記錄漢字的話,難度就進一步飆升了。
現在大明通行的《通用標準漢字表》就有八千個字。
一個字卦長度至少要增加到十三爻,有八千一百九十二的容量才能容納。
字卦長度要增加到十五爻,有三萬兩千七百六十八的容量,才能整個《大明標準漢字總表》的所有漢字。
現在的生產工藝級別較低,還要參考IBM的做法,設置校驗位。
這樣字節長度就增加到了十六爻。
與此同時,三萬多個十六位字卦,編碼總容量已經達到了65536爻,折合前世的65KB。
這對於早期的計算機而言,是一個非常大的數字。
更關鍵的是,這只是漢字編號。
如果把漢字當做是一個個的人,這個表格相當於所有他們所有人的地址表。
要讓漢字在屏幕上顯示,還要把漢字做成點陣圖像。
按照前世的經驗,要讓漢字顯示的相對自然正確,要用二十四乘以二十四的點陣。
一個點的開關也要用一個二進位爻控制。
一個二十四乘以二十四的點陣,需要五百七十六個二進位爻,一個字卦是十六爻,其中一位做校驗,剩下十五位,五百七十六除以十五,一個字需要三十八點五個字卦,32768個漢字合計1258292字卦,也就是1.26MB,折合前世的2.52MB。
當時的很多硬碟都裝不下,更別說內存了。
要讓漢字勉強完整顯示,不缺少筆畫,也要十六乘以十六的點陣。
這樣總共也要前世1.12MB容量。
就算是只記錄通用漢字表,也需要560KB。
七十年代以前的電腦,裝下這個東西是非常吃力的。
再次基礎上,這也還只是點陣字庫。
要通過鍵盤把漢字打出來,輸入到電腦裡面去,還需要一個輸入法程序。
用於按照人類能夠理解的邏輯,通過特定的按鍵組合,把想要的漢字從字庫中篩選出來。
這個過程跟英文打單詞是一樣的,區別只是一個字母一個字母的顯示,最後組合起來形成命令。
還是依次打完特定的組合的按鍵,組合形成成命令的同時顯示出目標漢字。
如果不涉及到高級的聯想功能,用高度機械死板的輸入法,限定死只能用哪些漢字,就是這樣的邏輯。
不過,點陣數據還可以放在硬碟上,字表和輸入法就要載入內存了。
當時的超級計算機內存也只有100KB出頭的樣子。
這對當時的計算機而言是一個巨大的挑戰。
要先運行輸入法程序,從字表中篩查出要輸入的漢字,再去硬碟查點陣圖輸出到屏幕。
就算是不惜成本,將字庫輸入法都所有功能都實現出來了。
這台電腦多半也會出現打一個字就要等好幾秒的狀態。
所以,朱靖垣現在看到電腦屏幕上有漢字,就知道工部絕對沒有把漢字全做進計算機。
因為現在的電腦也不需要將所有漢字輸入進去。
這時候的計算機就不是用來處理文字的。
英文編程也不會把addition打完整,那這一個單詞就需要64B的空間來容納。
一段代碼打上幾十個單詞,就要占用KB級別的內存了,英文系統同樣撐不住。
肯定要能省就省的,直接寫個ADD就行了。
反正電腦不是處理文字的,當時的命令也只有幾十個,單詞都用簡寫也不會認錯。
漢字肯定是這麼處理的,也只能這麼處理。
朱靖垣懷疑,這台電腦只能顯示一兩百,甚至幾十個漢字。
很可能是一個按鍵固定出一個字,一個對應一個固定的程序命令,剩下的就都是標點符號和數字了。
符號系統也不會存在什麼全角半角的區別,輸入過程也不需要轉換輸入法。
如果是這樣的話,漢字彙編反而比英文更簡單。
因為單個漢字就有英文單詞的作用,特別是在傳統文言文仍然盛行的時代。
朱靖垣眼前屏幕上的程序中的命令,確實全都是一個一個的單字。
英文環境下單個字母很少有實際意義,至少要用兩個到三個字母,才能讓程式設計師產生有實際含義的聯想。
同時,眼前這個屏幕肯定是非常「高級」的功能。
低級型號的電腦,很可能根本沒有屏幕。
因為屏幕上顯示漢字和字母,哪怕是只有幾十個,也非常浪費存儲空間。
早期的英文電腦同樣是沒有屏幕的。
操作員都是盲打的。
至於完整的八千個漢字,只能等下一代的電腦,把集成電路做出來再說了。
朱靖垣下達了正式的命令,相關人員立刻起身領命:
「臣等遵旨。」
朱靖垣抬手示意,讓他們都坐回去,然後繼續問新的問題:
「說到要收集數據做計算,現在欽天監、工部、軍械部,你們的計算機夠不夠用?」
齊彥槐馬上回應說:
「感謝陛下關心,欽天監搬遷完成後,也同步啟用了最新的三型通用矽晶計算機器。
「單機計算力達到了每秒一百萬次,應該能夠滿足欽天監目前的計算需求了。」
新任的工部尚書汪萊也緊隨其後的補充說:
「托陛下的洪福,大明的矽晶計算機在這十年突飛猛進。
「應天新都城設計建設的過程中,同步部署了工部研發完成的三型通用矽晶計算機器。
「包括欽天監、工部、軍械部、都督府、皇家銀行、大明銀行在內。
「對計算力有比較強的需求的部門和機構的辦公區,都部署了每秒百萬次的計算機。
「其他機構也有了相同構架,算力略低的同系列型號。」
朱靖垣從兩人的回答中聽到了兩個關鍵詞。
每秒一百萬次容易理解,這是前世美利堅六十年代初計算機水平。
至於通用計算機,也就是使用統一構架,可以使用相同的程序,並可以拓展存儲空間和外接設備的計算機。
朱靖垣前世用過的計算機基本都是通用計算機。
這種讓後人習以為常的東西,在計算機出現的最早期,是很多人難以想像的東西。
最早的計算機幾乎所有設備都是專用的。
兩台計算機之間的差距,就好像後世的桌上型電腦和手機之間的差距一樣。
真正的通用計算機,也是在六十年代初期出現的。
IBM公司在1965年正式公開銷售的system 360系列計算機。
正是這第一套通用計算機,留下了每個字節八個比特的計算機底層慣例。
朱靖垣在十年以前,就給大明的計算機項目列了一大堆目標。
這些目標同時也是指導,直接提供了經過驗證的發展方向。
電子管計算機,大明只發展了兩代驗證機,根本沒有大規模推廣,就沒有繼續製造了。
按照朱靖垣的建議,直接鑽進了電晶體的方向,並且直接朝著通用計算機前進。
大明的工匠們努力攻關十二年,終於把這套東西做出來了。
朱靖垣在心中對比了一下前世計算機的發展脈絡。
第一台公開的大型計算機埃尼阿克在1946年誕生。
第一台純電晶體計算機崔迪克在1954年誕生。
第一套通用計算機在1965年公開銷售。
在自己的直接推動下,大明用了十二年的時間,走完了前世美國人十九年的路。
計算機的技術的發展速度加快了一半,時間縮短了三分之一。
朱靖垣當初是給了方向,後續幾年也陸續給了一些指導。
但是在登基前的這幾年,朱靖垣沒有持續關注,現在對他們的最新進展也感興趣。
於是朱靖垣直接站了起來:
「好,汪工、齊工,你們兩位帶我去看看,今天的會議就到這裡吧。」
周圍的眾人再次一起起身行禮。
汪萊和齊彥槐快步出列,少傅、司空兩個九卿也緊隨其後。
一行人在齊彥槐的引領下去了欽天監的機房。
到了門口的時候,齊彥槐伸手推開房門,然後馬上讓開一邊。
朱靖垣看到了機房內的景象。
大明當初的第一台計算機「道」,是用電子管為核心組裝的,當時占滿了一整個大廳。
現在的這台「三型通用矽晶計算機器」作為電晶體計算機,體積明顯小了一大截。
現在只剩下了一個占滿了一面牆的大型機櫃了。
機櫃側面是一個大型操作台,上面放著一台看上去好像前世的老式電視的東西。
電視前面的台子上是幾排規整的按鍵。
它已經有了顯示器和鍵盤!
周圍還連接著電傳印表機、傳真機、打孔機等外置設備。
房間裡面本來有幾個人正在使用計算機。
收到皇帝要過來的消息,都提前站在了計算機兩側等待,看到皇帝馬上行禮。
朱靖垣揮手示意,然後徑直走到了操作台前。
桌子上的鍵盤,就是自己當初設計的打字機用的那個鍵盤。
不過比打字機鍵盤更加複雜了。
除了五十六個打字鍵,周圍又加了一些功能和符號鍵,總共估計有一百個左右。
鍵盤的旁邊還放著幾份文件。
有圖表和文字說明,顯然是準備用於計算的數據。
而那台好像老式電視的顯示器上面,現在還顯示著一些文字。
就是自己日常用的漢字,加上世祖皇帝推行的句讀符號系統,以及一些夾雜其中的空位。
每一個字自己都認識,但是放在一起就看不懂了。
乍一看好像是亂碼。
仔細看的話,還能發現一些規律,似乎是用特定的單字和數字,組合表示特定的邏輯。
好像是某種程序語言。
只是把英文字母和數字都換成了漢字。
眼前的這一幕,這又讓朱靖垣確認了兩項重要信息。
這台計算機是能夠直接顯示漢字的。
更重要的是,他們用的程序語言,至少已經是彙編語言的級別了。
甚至可能是早期的高級語言了。
朱靖垣前世不是程式設計師,對編程用的程序語言也不是很懂,只是上學的時候在公共課上了解過基本的知識。
知道變電腦用的程序語言,大體上可以分成三個大層級。
機器語言,彙編語言,高級語言。
越往前的越接近機器語言,越往後的越接近人類語言。
越往前的語言編制的程序性能越高,因為可以直接輸入機器,直接進行物理層面的運算。
但是能夠執行的命令也越簡單,想要實現複雜功能的難度越高。
越往後的語言編制的程序性能越低,因為要經過讀取和翻譯,轉化成機器語言之後再去運行。
不過能夠執行命可以更加複雜,實現複雜功能的難度也越低。
在自己的前世,所有正兒八經的電腦程式語言,在最底層都是用英文表示的。
有少數程序可以在表層顯示漢字,但完全不成氣候。
其實程序語言不是不能使用漢字,因為早期程序語言本質上不是人類語言。
裡面的那些英文字母本質上都是邏輯和定義符號。
用數字甚至星星框框表示一樣可以。
只要程式設計師能夠記住,每個圖像代表的是什麼指令。
之所以都是英文而沒有漢字,是因為早期程式設計師都用英文,所以用英文去記錄和表示命令。
這種傳統就形成了限制鐵軌寬度的馬屁股。
最先建設鐵路的英國人,選擇的鐵軌寬度是正好容納兩匹馬行走的寬度。
這個與火車並沒有直接關係的數據,成了後世的標準鐵軌寬度。
計算機語言也是一樣。
計算機的基礎是電晶體,每一個電晶體可以看做是一組燈泡和開關。
關和開的這兩種狀態,可以參考燈泡是否亮起的狀態。
用二進位數來表示,就是0和1。
在大明的計算機器相關的研究中,工匠們習慣用陰和陽來代指。
每一個電晶體的兩個狀態,能夠表達的兩個數字,在前世被稱為一個「比特」。
在大明被稱為一個「數」,或者「爻(yáo)」。
爻就是傳統八卦符號中那些中斷和連接的橫線的統稱。
一整條連續的橫線是陽爻,中間斷開的橫線是陰爻。
開和關的意義,陰與陽的象徵,斷開與連接與執行,三者的意味天然趨同。
對大明的工匠們而言,這種命名都是理所當然的選擇。
人向機器傳遞的所有指令,想要被機器所識別並執行,都要轉化成一連串的開關命令。
計算機裡面的開關太多了,人們為了方便管理和使用,就將其分成一個個的小組。
前世最早的計算機是四個一組,最後的通用計算機是八個一組。
這樣四個到八個一組開關的開關命令的長度,在後世就被稱為一個「字節」。
在大明被稱為一個「字」或者「卦」,就是八卦的卦。
機器語言,就是直接輸入開和關兩種信號,可以想像對零和一兩個鍵反覆不斷地按。
實際上使用打空紙帶來執行的,用一個位置是否有空洞來表示開和關。
對二進位機器而言,他只能理解開和關。
比如說一組電路或者一項控制功能,在四爻(四位)機器上執行的方式是「關關關開」。
這個命令在機器看來,名字和意義就是「關關關開」,沒有什麼別的附加意義。
但是在人類視角下,「關關關開」只是一個編號,單純看這個容易混亂。
於是人類根據自己的設計思路,知道這個編號所代表的邏輯功能,用自己使用的人類語言中應該用什麼詞彙來描述。
美國人在自己的腦子和小本本裡面,記下「addition=關關關開」。
大明人在小本本上寫下了「加=陰陰陰陽」,或者是畫上三陰一陽的爻線。
無論是addition還是加,都只是人類方便自己記憶的「備註」
在機器裡面實際上都是在干「關關關開」的活兒。
要控制計算機,就要直接去控制四個開關,組成「關關關開」的效果。
最後計算機算完的數據,也用紙帶上對應位置的空洞順序,來表示一串的開和關。
人類再把這些有規律的開關,翻譯城人類能夠理解的語言。
最早期的計算機,是與人類語言完全沒有關係的,就看使用者怎麼去命名和解讀。。
但是這樣實在太麻煩了。
如果能讓計算機直接識別人類語言就好了。
關鍵是,為什麼是我這個人類,把自己的話翻譯成你這個機器的語言。
為什麼不能是我說我們人類的語言,然後你這個機器自己去翻譯成你們機器能理解的語言?
機器當然不知道怎麼幹。
於是人類給決定給機器做個翻譯器,或者說轉換器。
在翻譯器上輸入人類語言,翻譯器給機器翻譯成機器語言,再讓機器去執行計算。
計算機算完之後輸出,再讓翻譯器翻譯成人類語言。
這個想法是非常好的,這其實也是所有程序語言的基本邏輯。
程序語言的最終目的,就是實現人類直接說法,讓機器完全理解並完美執行。
只可惜啊,別說完全聽懂人話並完美執行了,單純的讓機器直接執行最基本的命令,都讓最早的研究人員們費老勁了。
翻譯器怎麼才能把addition翻譯成一連串的開關呢?
怎麼讓機器知道「加」是什麼意思呢?
看上去,好像只要做一個表格,左邊一列寫addition或者加,右邊寫「關關關開」。
告訴機器,我輸入addition或者加,你就去給我執行「關關關開」。
然而更進一步的問題是,怎麼「輸入」addition或者加。
輸入法這個東西,在後世看來很常見的東西,在早期電腦上絕對是黑科技。
就算是看上去能夠按鍵直出的英文字母,也要去干一個物理按鍵綁定字母表的活兒。,
否則機器不知道a是啥,c又是啥,根本沒有b數。
所以要再做一個表格,把一個開關序列綁定a,一個開關序列綁定b,一個開關序列綁定c……二十六個字母和標點符號數字都做好。
再再做一個表格,把這些開關序列綁定鍵盤上的按鍵,並在按鍵上寫上a、b、c……
我依次按下寫著addition這幾字母的按鍵,計算機收到按鍵對應的信號去查表。
找到了關關開關、關關開開、關關關關……等一連串的開關命令。
如果是英文系統,這時候就在屏幕上依次顯示addition幾個字母。
同時,這關關開關、關關開開、關關關關……這一連串命令,按照順序組合起來,就對應另一個命令「關關關開」。
如果是漢字系統,這時候在屏幕上顯示「加」。
最後,計算機去執行最後的「關關關開「命令。
輸入英文是一個相同表格有幾個字母循環查幾遍,漢字是設計兩到四層嵌套的表格逐次查一遍。
做到這些就已經非常困難了。
甚至於,對早期計算機性能都有了一定的要求……
最早的計算機字節長度是四位的。
一個二進位位可以記錄兩個編號,字節長度為四的話,最多可以記錄二的四次方,也就是總共十六個編號。
這甚至不能容納所有的英文字母。
要記錄所有字母,至少要把字節長度增加到五,這樣編碼容量增加到了三十二。
可以容納所有的字母,再加上幾個常用的符號。
但是還不能同時單獨輸入數字,用純英文單詞去拼數字就太噁心了。
於是又把字節長度增加到六位,編碼容量增加到了六十四。
這就能夠容納字母、數字、常見符號了。
所以六位的計算機,甚至於在計算機出現之前,就在打孔卡上用了很久了。
但是六位的情況下,字母只能有大寫或者小寫一種。
彙編語言也全部都是大寫字母。
如果用來輸出文字的話,全篇大寫字母看著也是很頭疼。
所以就繼續增加到七位數。
這樣就有了總共一百二十八個的編碼容量,對於英語而言基本圓滿了。
能表達所有大小寫字母、主要符號、十個數字。
以及換行、回車、刪除等常用的輸入控制命令。
美利堅制定的ASCII標準就是七位編碼。
後世的通用計算機字節長度是八位,因為IBM設計的第一套通用計算機,在七位的基礎上增加了一位校驗碼。
後來隨著技術提升,校驗碼被省略,八位編碼的容量就增加到了二百五十六個了。
相比最初的計算機,字節長度已經翻倍了。
這還只是英文,如果要記錄漢字的話,難度就進一步飆升了。
現在大明通行的《通用標準漢字表》就有八千個字。
一個字卦長度至少要增加到十三爻,有八千一百九十二的容量才能容納。
字卦長度要增加到十五爻,有三萬兩千七百六十八的容量,才能整個《大明標準漢字總表》的所有漢字。
現在的生產工藝級別較低,還要參考IBM的做法,設置校驗位。
這樣字節長度就增加到了十六爻。
與此同時,三萬多個十六位字卦,編碼總容量已經達到了65536爻,折合前世的65KB。
這對於早期的計算機而言,是一個非常大的數字。
更關鍵的是,這只是漢字編號。
如果把漢字當做是一個個的人,這個表格相當於所有他們所有人的地址表。
要讓漢字在屏幕上顯示,還要把漢字做成點陣圖像。
按照前世的經驗,要讓漢字顯示的相對自然正確,要用二十四乘以二十四的點陣。
一個點的開關也要用一個二進位爻控制。
一個二十四乘以二十四的點陣,需要五百七十六個二進位爻,一個字卦是十六爻,其中一位做校驗,剩下十五位,五百七十六除以十五,一個字需要三十八點五個字卦,32768個漢字合計1258292字卦,也就是1.26MB,折合前世的2.52MB。
當時的很多硬碟都裝不下,更別說內存了。
要讓漢字勉強完整顯示,不缺少筆畫,也要十六乘以十六的點陣。
這樣總共也要前世1.12MB容量。
就算是只記錄通用漢字表,也需要560KB。
七十年代以前的電腦,裝下這個東西是非常吃力的。
再次基礎上,這也還只是點陣字庫。
要通過鍵盤把漢字打出來,輸入到電腦裡面去,還需要一個輸入法程序。
用於按照人類能夠理解的邏輯,通過特定的按鍵組合,把想要的漢字從字庫中篩選出來。
這個過程跟英文打單詞是一樣的,區別只是一個字母一個字母的顯示,最後組合起來形成命令。
還是依次打完特定的組合的按鍵,組合形成成命令的同時顯示出目標漢字。
如果不涉及到高級的聯想功能,用高度機械死板的輸入法,限定死只能用哪些漢字,就是這樣的邏輯。
不過,點陣數據還可以放在硬碟上,字表和輸入法就要載入內存了。
當時的超級計算機內存也只有100KB出頭的樣子。
這對當時的計算機而言是一個巨大的挑戰。
要先運行輸入法程序,從字表中篩查出要輸入的漢字,再去硬碟查點陣圖輸出到屏幕。
就算是不惜成本,將字庫輸入法都所有功能都實現出來了。
這台電腦多半也會出現打一個字就要等好幾秒的狀態。
所以,朱靖垣現在看到電腦屏幕上有漢字,就知道工部絕對沒有把漢字全做進計算機。
因為現在的電腦也不需要將所有漢字輸入進去。
這時候的計算機就不是用來處理文字的。
英文編程也不會把addition打完整,那這一個單詞就需要64B的空間來容納。
一段代碼打上幾十個單詞,就要占用KB級別的內存了,英文系統同樣撐不住。
肯定要能省就省的,直接寫個ADD就行了。
反正電腦不是處理文字的,當時的命令也只有幾十個,單詞都用簡寫也不會認錯。
漢字肯定是這麼處理的,也只能這麼處理。
朱靖垣懷疑,這台電腦只能顯示一兩百,甚至幾十個漢字。
很可能是一個按鍵固定出一個字,一個對應一個固定的程序命令,剩下的就都是標點符號和數字了。
符號系統也不會存在什麼全角半角的區別,輸入過程也不需要轉換輸入法。
如果是這樣的話,漢字彙編反而比英文更簡單。
因為單個漢字就有英文單詞的作用,特別是在傳統文言文仍然盛行的時代。
朱靖垣眼前屏幕上的程序中的命令,確實全都是一個一個的單字。
英文環境下單個字母很少有實際意義,至少要用兩個到三個字母,才能讓程式設計師產生有實際含義的聯想。
同時,眼前這個屏幕肯定是非常「高級」的功能。
低級型號的電腦,很可能根本沒有屏幕。
因為屏幕上顯示漢字和字母,哪怕是只有幾十個,也非常浪費存儲空間。
早期的英文電腦同樣是沒有屏幕的。
操作員都是盲打的。
至於完整的八千個漢字,只能等下一代的電腦,把集成電路做出來再說了。