第130章 中文代碼的浪漫
1980年秋,京城,紅星軟體研究所。
窗外的銀杏葉黃了,金燦燦地鋪了一地。
而在一間名為「倉頡」的絕密會議室里,氣氛卻像是一場沒有硝煙的辯論賽。
「荒謬!簡直是荒謬!」
拍桌子的是一位來自麻省理工學院的計算機教授,名叫史蒂芬。他是隨同IBM代表團來考察「龍芯」生態的顧問。
此時,他正指著黑板上的一行行方塊字,臉漲得通紅。
「計算機科學的基礎是數學,而數學的通用語言是英語和希臘字母!你們試圖用……用這種象形文字來寫代碼?這是對科學的褻瀆!這是在開歷史的倒車!」
史蒂芬的憤怒代表了當時西方學術界的主流觀點。
在他們看來,ASCII碼是計算機世界的聖經。所有的程式語言,從彙編到C,從Fortran到Pascal,無一不是基於英語邏輯構建的。
想用中文編程?那不就是把if換成如果,把else換成否則嗎?那是脫褲子放屁,毫無意義的漢化!
「史蒂芬教授,請坐。」
蘇正坐在會議桌的對面,神色淡然。他手裡端著紫砂茶杯,輕輕吹了吹浮在水面的茶葉。
「您說計算機語言必須是英語,是因為計算機是你們發明的。」
蘇正放下茶杯,目光變得深邃,「但現在,晶片是我們造的,架構是我們定的。為什麼規則……還要聽你們的?」
「這不僅是規則的問題,是效率!」
史蒂芬反駁道,「英文單詞有空格分隔,邏輯清晰。而中文……連詞與詞的界限都模糊不清。用中文寫編譯器,光是詞法分析就能把CPU累死!」
「是嗎?」
蘇正笑了。
他轉頭看向身邊的葉心儀,「心儀,給教授演示一下,什麼叫……中文的效率。」
葉心儀點點頭,打開了那台連接著大屏幕的「龍芯」工作站。
屏幕漆黑。
隨著她手指敲擊,一行行亮白色的漢字代碼,如同瀑布般流淌下來。
那不是簡單的漢化。
那是一種全新的、從未見過的語法結構。
【程序名:滄海一聲笑】
【定義:天地(屏幕),日月(循環),眾生(數組)】
入:主函數
設:天地之寬= 1024
設:眾生之數= 100
觀:眾生皆苦(初始化數組)
若:眾生[某]>慾念
則:斬(刪除)
或者:
渡(移動)
終
嘆:時光荏苒(主循環)
復:天地
繪:眾生
止
出
隨著葉心儀的輸入,現場變得鴉雀無聲。
那些漢字,不再是冷冰冰的指令。
它們組合在一起,竟然產生了一種奇異的韻律感。
不像是在寫代碼,倒像是在寫一首……古詩?或者一篇駢文?
「這……這是什麼鬼東西?」史蒂芬看得目瞪口呆,「『觀』?『若』?『嘆』?這些字在編譯器里代表什麼?」
「『觀』代表遍歷(Iterate)。」
葉心儀一邊敲擊鍵盤,一邊冷冷地解釋,「『若』是條件判斷,『嘆』是無限循環,『渡』是內存拷貝。」
「這有什麼意義?不就是換了個名字嗎?」
「意義在於……信息密度。」
蘇正站起身,走到黑板前,拿起粉筆畫了一個方框。
「在英文裡,描述一個『遍歷數組並刪除符合條件的元素』的邏輯,你需要寫for,寫if,寫花括號,寫一堆冗長的變量名。」
「但在中文裡。」
蘇正指著屏幕上那寥寥幾行字,「一個字,就是一個世界。」
「中文是二維的象形文字。每一個漢字,都攜帶了比英文單詞多得多的語義信息。在我們的『倉頡』編譯器里,一個漢字指令,可以直接映射為龍芯架構底層的『宏指令』。」
蘇正的聲音提高了幾分:
「也就是說,同樣的功能,英文代碼需要寫100行,編譯後生成500條機器碼。」
「而中文代碼,只需要寫20行,編譯後……只有300條機器碼!」
「不可能!」史蒂芬大喊,「編譯器的效率不可能相差這麼大!」
「跑個分吧。」
蘇正做了個請的手勢。
測試項目:快速傅立葉變換(FFT)。
左邊屏幕:C語言版本,由史蒂芬親自編寫,優化到了極致。
右邊屏幕:倉頡語言版本,由葉心儀現場賦詩一首。
「開始!」
隨著回車鍵按下。
兩台配置完全相同的「龍芯」電腦開始瘋狂運轉。
進度條飛快地向前沖。
一秒。
兩秒。
滴!
右邊的屏幕率先彈出了結果:耗時:1.24秒。
而左邊的屏幕,還在在那兒轉圈。
直到1.8秒後,才彈出結果。
1.24 vs 1.8。
快了接近50%!
「這……這不科學……」
史蒂芬癱坐在椅子上,滿臉冷汗,「為什麼?為什麼會這麼快?」
「因為『意境』。」
葉心儀合上電腦,淡淡地說道,「C語言關注的是『怎麼做』(How),它需要一步步教傻瓜CPU去搬磚。」
「而倉頡語言關注的是『做什麼』(What)。中文的語法結構,天生就包含了對整體邏輯的描述。我們的編譯器能讀懂代碼的『意境』,從而直接調用CPU內部的並行計算單元。」
她指了指腦子:
「在龍芯的架構里,我們預埋了專門處理『漢字邏輯』的微指令集。這,就是主場優勢。」
蘇正看著徹底沉默的西方代表團,心中湧起一股強烈的快意。
這就是文化自信。
誰說代碼必須是英文的?
誰說邏輯必須是線性的?
幾千年前,老祖宗用文言文能描述宇宙萬物。今天,我們用漢字代碼,一樣能構建數字世界!
而且,構建得更美,更快,更強!
「蘇先生……」
許久,IBM的代表終於開口了,語氣中少了幾分傲慢,多了幾分敬畏,「這套……『倉頡』語言,能授權給我們嗎?」
「當然。」
蘇正微笑著點頭,「不過,要想學倉頡,得先學《說文解字》。我想,各位回去後,得給你們的程式設計師報個中文補習班了。」
「另外……」
蘇正指了指會議室牆上掛著的一幅字:【道生一,一生二,二生三,三生萬物】。
「這就是二進位的起源。其實,在這個領域,我們才是祖師爺。」
……
送走外賓後,會議室里爆發出了一陣歡呼。
年輕的華夏程式設計師們激動得熱淚盈眶。
曾幾何時,他們為了學編程,不得不抱著厚厚的英漢詞典,死記硬背那些枯燥的單詞。Integer,Float,Pointer……每一個單詞都是一道門檻,攔住了無數有天賦但英語不好的華夏少年。
但今天。
那個玻璃天花板,碎了。
「蘇部長!我想試試!」
一個戴著眼鏡的男生衝到電腦前,「我想用倉頡寫個……寫個貪吃蛇!」
「寫!」
蘇正大手一揮,「不僅要寫貪吃蛇,還要寫作業系統,寫辦公軟體,寫遊戲!從今天起,我們的屏幕上,不僅要有漢字的界面,還要有漢字的靈魂!」
葉心儀站在蘇正身邊,看著那些興奮的年輕人。
「你把這群孩子放出來了。」她輕聲說道,「你知道這意味著什麼嗎?」
「意味著什麼?」
「意味著以後,西方黑客想破解我們的代碼,得先去考個中文六級。」
葉心儀難得地開了個玩笑,「而且,他們永遠也讀不懂,為什麼我們在變量名里藏了一句『落霞與孤鶩齊飛』。」
蘇正大笑。
是啊,這就是中文代碼的浪漫。
它是理性的,也是感性的。它是邏輯的,也是詩意的。
它讓冰冷的矽基晶片,第一次擁有了溫度。
「心儀。」
蘇正收起笑容,看向窗外,「地基打好了,柱子立起來了。接下來,該蓋房子了。」
「你是說……」
「圖形界面。」
蘇正從口袋裡掏出那個從矽谷帶回來的簡陋滑鼠。
「有了倉頡語言的高效率,我們終於可以在這顆算力還不夠強大的晶片上,跑起來那個……真正屬於未來的界面了。」
「下一步,我們要讓視窗……提前十年,在華夏誕生。」
……
窗外的銀杏葉黃了,金燦燦地鋪了一地。
而在一間名為「倉頡」的絕密會議室里,氣氛卻像是一場沒有硝煙的辯論賽。
「荒謬!簡直是荒謬!」
拍桌子的是一位來自麻省理工學院的計算機教授,名叫史蒂芬。他是隨同IBM代表團來考察「龍芯」生態的顧問。
此時,他正指著黑板上的一行行方塊字,臉漲得通紅。
「計算機科學的基礎是數學,而數學的通用語言是英語和希臘字母!你們試圖用……用這種象形文字來寫代碼?這是對科學的褻瀆!這是在開歷史的倒車!」
史蒂芬的憤怒代表了當時西方學術界的主流觀點。
在他們看來,ASCII碼是計算機世界的聖經。所有的程式語言,從彙編到C,從Fortran到Pascal,無一不是基於英語邏輯構建的。
想用中文編程?那不就是把if換成如果,把else換成否則嗎?那是脫褲子放屁,毫無意義的漢化!
「史蒂芬教授,請坐。」
蘇正坐在會議桌的對面,神色淡然。他手裡端著紫砂茶杯,輕輕吹了吹浮在水面的茶葉。
「您說計算機語言必須是英語,是因為計算機是你們發明的。」
蘇正放下茶杯,目光變得深邃,「但現在,晶片是我們造的,架構是我們定的。為什麼規則……還要聽你們的?」
「這不僅是規則的問題,是效率!」
史蒂芬反駁道,「英文單詞有空格分隔,邏輯清晰。而中文……連詞與詞的界限都模糊不清。用中文寫編譯器,光是詞法分析就能把CPU累死!」
「是嗎?」
蘇正笑了。
他轉頭看向身邊的葉心儀,「心儀,給教授演示一下,什麼叫……中文的效率。」
葉心儀點點頭,打開了那台連接著大屏幕的「龍芯」工作站。
屏幕漆黑。
隨著她手指敲擊,一行行亮白色的漢字代碼,如同瀑布般流淌下來。
那不是簡單的漢化。
那是一種全新的、從未見過的語法結構。
【程序名:滄海一聲笑】
【定義:天地(屏幕),日月(循環),眾生(數組)】
入:主函數
設:天地之寬= 1024
設:眾生之數= 100
觀:眾生皆苦(初始化數組)
若:眾生[某]>慾念
則:斬(刪除)
或者:
渡(移動)
終
嘆:時光荏苒(主循環)
復:天地
繪:眾生
止
出
隨著葉心儀的輸入,現場變得鴉雀無聲。
那些漢字,不再是冷冰冰的指令。
它們組合在一起,竟然產生了一種奇異的韻律感。
不像是在寫代碼,倒像是在寫一首……古詩?或者一篇駢文?
「這……這是什麼鬼東西?」史蒂芬看得目瞪口呆,「『觀』?『若』?『嘆』?這些字在編譯器里代表什麼?」
「『觀』代表遍歷(Iterate)。」
葉心儀一邊敲擊鍵盤,一邊冷冷地解釋,「『若』是條件判斷,『嘆』是無限循環,『渡』是內存拷貝。」
「這有什麼意義?不就是換了個名字嗎?」
「意義在於……信息密度。」
蘇正站起身,走到黑板前,拿起粉筆畫了一個方框。
「在英文裡,描述一個『遍歷數組並刪除符合條件的元素』的邏輯,你需要寫for,寫if,寫花括號,寫一堆冗長的變量名。」
「但在中文裡。」
蘇正指著屏幕上那寥寥幾行字,「一個字,就是一個世界。」
「中文是二維的象形文字。每一個漢字,都攜帶了比英文單詞多得多的語義信息。在我們的『倉頡』編譯器里,一個漢字指令,可以直接映射為龍芯架構底層的『宏指令』。」
蘇正的聲音提高了幾分:
「也就是說,同樣的功能,英文代碼需要寫100行,編譯後生成500條機器碼。」
「而中文代碼,只需要寫20行,編譯後……只有300條機器碼!」
「不可能!」史蒂芬大喊,「編譯器的效率不可能相差這麼大!」
「跑個分吧。」
蘇正做了個請的手勢。
測試項目:快速傅立葉變換(FFT)。
左邊屏幕:C語言版本,由史蒂芬親自編寫,優化到了極致。
右邊屏幕:倉頡語言版本,由葉心儀現場賦詩一首。
「開始!」
隨著回車鍵按下。
兩台配置完全相同的「龍芯」電腦開始瘋狂運轉。
進度條飛快地向前沖。
一秒。
兩秒。
滴!
右邊的屏幕率先彈出了結果:耗時:1.24秒。
而左邊的屏幕,還在在那兒轉圈。
直到1.8秒後,才彈出結果。
1.24 vs 1.8。
快了接近50%!
「這……這不科學……」
史蒂芬癱坐在椅子上,滿臉冷汗,「為什麼?為什麼會這麼快?」
「因為『意境』。」
葉心儀合上電腦,淡淡地說道,「C語言關注的是『怎麼做』(How),它需要一步步教傻瓜CPU去搬磚。」
「而倉頡語言關注的是『做什麼』(What)。中文的語法結構,天生就包含了對整體邏輯的描述。我們的編譯器能讀懂代碼的『意境』,從而直接調用CPU內部的並行計算單元。」
她指了指腦子:
「在龍芯的架構里,我們預埋了專門處理『漢字邏輯』的微指令集。這,就是主場優勢。」
蘇正看著徹底沉默的西方代表團,心中湧起一股強烈的快意。
這就是文化自信。
誰說代碼必須是英文的?
誰說邏輯必須是線性的?
幾千年前,老祖宗用文言文能描述宇宙萬物。今天,我們用漢字代碼,一樣能構建數字世界!
而且,構建得更美,更快,更強!
「蘇先生……」
許久,IBM的代表終於開口了,語氣中少了幾分傲慢,多了幾分敬畏,「這套……『倉頡』語言,能授權給我們嗎?」
「當然。」
蘇正微笑著點頭,「不過,要想學倉頡,得先學《說文解字》。我想,各位回去後,得給你們的程式設計師報個中文補習班了。」
「另外……」
蘇正指了指會議室牆上掛著的一幅字:【道生一,一生二,二生三,三生萬物】。
「這就是二進位的起源。其實,在這個領域,我們才是祖師爺。」
……
送走外賓後,會議室里爆發出了一陣歡呼。
年輕的華夏程式設計師們激動得熱淚盈眶。
曾幾何時,他們為了學編程,不得不抱著厚厚的英漢詞典,死記硬背那些枯燥的單詞。Integer,Float,Pointer……每一個單詞都是一道門檻,攔住了無數有天賦但英語不好的華夏少年。
但今天。
那個玻璃天花板,碎了。
「蘇部長!我想試試!」
一個戴著眼鏡的男生衝到電腦前,「我想用倉頡寫個……寫個貪吃蛇!」
「寫!」
蘇正大手一揮,「不僅要寫貪吃蛇,還要寫作業系統,寫辦公軟體,寫遊戲!從今天起,我們的屏幕上,不僅要有漢字的界面,還要有漢字的靈魂!」
葉心儀站在蘇正身邊,看著那些興奮的年輕人。
「你把這群孩子放出來了。」她輕聲說道,「你知道這意味著什麼嗎?」
「意味著什麼?」
「意味著以後,西方黑客想破解我們的代碼,得先去考個中文六級。」
葉心儀難得地開了個玩笑,「而且,他們永遠也讀不懂,為什麼我們在變量名里藏了一句『落霞與孤鶩齊飛』。」
蘇正大笑。
是啊,這就是中文代碼的浪漫。
它是理性的,也是感性的。它是邏輯的,也是詩意的。
它讓冰冷的矽基晶片,第一次擁有了溫度。
「心儀。」
蘇正收起笑容,看向窗外,「地基打好了,柱子立起來了。接下來,該蓋房子了。」
「你是說……」
「圖形界面。」
蘇正從口袋裡掏出那個從矽谷帶回來的簡陋滑鼠。
「有了倉頡語言的高效率,我們終於可以在這顆算力還不夠強大的晶片上,跑起來那個……真正屬於未來的界面了。」
「下一步,我們要讓視窗……提前十年,在華夏誕生。」
……