夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱……
這不是「請朗讀並背誦全文」系列,而是一個 GitHub 一個代碼項目的序言,爲什麽要用文言文?因爲這就是一個用文言文編程的項目。
這套編程語言叫做「文言編程語言(wenyan-lang)」是卡內基梅隆大學(CMU)一個中國留學生 Lingdong Huang 在去年創建的,也曾在網上引起熱議。
▲圖片來自:知乎
那到底是怎麽用文言文來編程的呢?這並不是將英文字符轉換爲文言文這麽簡單,而是要用自然語言處理(NLP)技術,將文言編程語言編譯成編譯成 JavaScript,Python 和 Ruby 等編程語言。
比如編程界經典的代碼「Helloworld」,如果用文言編程語言是這樣寫的:
吾有一數。曰三。名之曰「甲」。為是「甲」遍。吾有一言。曰「「問天地好在。」」。書之。雲雲。
如果將這段代碼轉換成 JavaScript 語言,是這樣的:
var n = 3;for (var i = 0; i < n; i++) {console.log(“ 問天地好在。”);}
當中的原理不在這裏贅述,如果想了解更多文言編程的技巧,可以關注這個項目在 GitHub 的頁面,當然如果你已經有一定編程基礎,也可以嘗試編程一些更加複雜的程序,在知乎上就有網友用文言文編寫割圓法算圓周率的程序,而在 Huang 的個人主站上,還展示了不少更加複雜的文言編程案例,比如曼德勃羅集和考拉茲猜想。
此外 Huang 還開發了一個「古文代碼生成器」,可以將枯燥的文言文代碼轉換爲一本古書的頁面,在視覺上更有古典的氣息。
Huang 目前正在用文言文編寫文言編程的入門指南,目的是讓更多完全沒有編程經驗的人使用文言編程語言,目前已經完成了 40%。
在接受媒體采訪時,Huang 表示自己對于文言文十分著迷,在讀大學之前就閱讀了大量文言文書籍,現在他正在讀的是《淮南子》,而這本書裏有一句話:
昔者蒼颉作書,而天雨粟、鬼夜哭。
這句話講的倉颉造字,驚天地泣鬼神的故事。文字是世界上最偉大的發明之一,從此曆史得以記載,知識可以傳播。而在這個互聯網時代,組成整個龐大數字世界的,則是一行行代碼。用文言文來編程,確實也給古代文字的傳承找到了一條新路。