世界上第一個文言文編程語言誕生,創(chuàng)造它的是一個大學生
- 夫唐、虞之世,結(jié)繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經(jīng)》之走獸。鼠、蟹、鑽、魚,或以速稱……
這不是「請朗讀并背誦全文」系列,而是一個 GitHub 一個代碼項目的序言,為什么要用文言文?因為這就是一個用文言文編程的項目。
這套編程語言叫做「文言編程語言(wenyan-lang)」是卡內(nèi)基梅隆大學(CMU)一個中國留學生 Lingdong Huang 在去年創(chuàng)建的,也曾在網(wǎng)上引起熱議。
而在上個月, Huang 利用畢業(yè)前的最后一周的時間,完成了這套編程語言的核心功能,世界上首個用文言文的編程語言正式誕生。
盡管文言編程語言誕生只有一個月,但已經(jīng)吸引了不少人用它來寫程序。據(jù) Huang 介紹,目前已經(jīng)有數(shù)十個用文言編程語言寫的程序,其中一大半都是由其他人編寫的。其中很多程序都是基于中國古代的數(shù)學著作,比如三國時代數(shù)學家的圓周率計算方法,甚至還有《易經(jīng)》的算命算法。
那到底是怎么用文言文來編程的呢?這并不是將英文字符轉(zhuǎn)換為文言文這么簡單,而是要用自然語言處理(NLP)技術(shù),將文言編程語言編譯成編譯成 JavaScript,Python 和 Ruby 等編程語言。
比如編程界經(jīng)典的代碼「Helloworld」,如果用文言編程語言是這樣寫的:
- 吾有一數(shù)。曰三。名之曰「甲」。
- 為是「甲」遍。
- 吾有一言。曰「「問天地好在。」」。書之。
- 云云。
如果將這段代碼轉(zhuǎn)換成 JavaScript 語言,是這樣的:
- var n = 3;
- for (var i = 0; i < n; i++) {
- console.log(“ 問天地好在。”);
- }
當中的原理不在這里贅述,如果想了解更多文言編程的技巧,可以關注這個項目在 GitHub 的頁面,當然如果你已經(jīng)有一定編程基礎,也可以嘗試編程一些更加復雜的程序,在知乎上就有網(wǎng)友用文言文編寫割圓法算圓周率的程序,而在 Huang 的個人主站上,還展示了不少更加復雜的文言編程案例,比如曼德勃羅集和考拉茲猜想。
為什么 Huang 要創(chuàng)造一套使用文言文的編程語言,其實在 GitHub 項目上的序言已經(jīng)說出了答案,這段序的大意是,如今的計算機十分精妙,編程語言數(shù)量眾多,但過去從未有人嘗試用文言文來編程,他認為這也是傳承文脈、保護文心的一種方式。
此外 Huang 還開發(fā)了一個「古文代碼生成器」,可以將枯燥的文言文代碼轉(zhuǎn)換為一本古書的頁面,在視覺上更有古典的氣息。
Huang 在去年 12 月已經(jīng)在卡內(nèi)基梅隆大學(CMU)獲得了計算機科學與藝術(shù)學位,他除了文言編程語言,他還曾用計算機程序生成了一幅中國山水畫,還參與開發(fā)了第一個由人工智能合成的昆曲視頻。
Huang 目前正在用文言文編寫文言編程的入門指南,目的是讓更多完全沒有編程經(jīng)驗的人使用文言編程語言,目前已經(jīng)完成了 40%。
在接受媒體采訪時,Huang 表示自己對于文言文十分著迷,在讀大學之前就閱讀了大量文言文書籍,現(xiàn)在他正在讀的是《淮南子》,而這本書里有一句話:
昔者蒼頡作書,而天雨粟、鬼夜哭。
這句話講的倉頡造字,驚天地泣鬼神的故事。文字是世界上最偉大的發(fā)明之一,從此歷史得以記載,知識可以傳播。而在這個互聯(lián)網(wǎng)時代,組成整個龐大數(shù)字世界的,則是一行行代碼。用文言文來編程,確實也給古代文字的傳承找到了一條新路。