世界上第一個文言文編程語言誕生,創造它的是一個大學生

愛範兒 於 04/02/2020 發表 收藏文章

引用夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱……

這不是「請朗讀並背誦全文」系列,而是一個 GitHub 一個代碼項目的序言,為什麼要用文言文?因為這就是一個用文言文編程的項目。

這套編程語言叫做「文言編程語言(wenyan-lang)」是卡內基梅隆大學(CMU)一箇中國留學生 Lingdong Huang 在去年創建的,也曾在網上引起熱議。


▲ Lingdong Huang

而在上個月, Huang 利用畢業前的最後一週的時間,完成了這套編程語言的核心功能,世界上首個用文言文的編程語言正式誕生。

儘管文言編程語言誕生只有一個月,但已經吸引了不少人用它來寫程序。據 Huang 介紹,目前已經有數十個用文言編程語言寫的程序,其中一大半都是由其他人編寫的。其中很多程序都是基於中國古代的數學著作,比如三國時代數學家的圓周率計算方法,甚至還有《易經》的算命算法。


▲圖片來自:知乎

那到底是怎麼用文言文來編程的呢?這並不是將英文字符轉換為文言文這麼簡單,而是要用自然語言處理(NLP)技術,將文言編程語言編譯成編譯成 JavaScript,Python 和 Ruby 等編程語言。

比如編程界經典的代碼「Helloworld」,如果用文言編程語言是這樣寫的:

引用吾有一數。曰三。名之曰「甲」。

為是「甲」遍。

吾有一言。曰「「問天地好在。」」。書之。
云云。

如果將這段代碼轉換成 JavaScript 語言,是這樣的:

引用var n = 3;

for (var i = 0; i < n; i++) {

console.log(“ 問天地好在。”);

}

當中的原理不在這裏贅述,如果想了解更多文言編程的技巧,可以關注這個項目在 GitHub 的頁面,當然如果你已經有一定編程基礎,也可以嘗試編程一些更加複雜的程序,在知乎上就有網友用文言文編寫割圓法算圓周率的程序,而在 Huang 的個人主站上,還展示了不少更加複雜的文言編程案例,比如曼德勃羅集和考拉茲猜想。


為什麼 Huang 要創造一套使用文言文的編程語言,其實在 GitHub 項目上的序言已經説出了答案,這段序的大意是,如今的計算機十分精妙,編程語言數量眾多,但過去從未有人嘗試用文言文來編程,他認為這也是傳承文脈、保護文心的一種方式。


此外 Huang 還開發了一個「古文代碼生成器」,可以將枯燥的文言文代碼轉換為一本古書的頁面,在視覺上更有古典的氣息。


Huang 在去年 12 月已經在卡內基梅隆大學(CMU)獲得了計算機科學與藝術學位,他除了文言編程語言,他還曾用計算機程序生成了一幅中國山水畫,還參與開發了第一個由人工智能合成的崑曲視頻


Huang 目前正在用文言文編寫文言編程的入門指南,目的是讓更多完全沒有編程經驗的人使用文言編程語言,目前已經完成了 40%。

在接受媒體採訪時,Huang 表示自己對於文言文十分着迷,在讀大學之前就閲讀了大量文言文書籍,現在他正在讀的是《淮南子》,而這本書裏有一句話:

引用昔者蒼頡作書,而天雨粟、鬼夜哭。

這句話講的倉頡造字,驚天地泣鬼神的故事。文字是世界上最偉大的發明之一,從此歷史得以記載,知識可以傳播。而在這個互聯網時代,組成整個龐大數字世界的,則是一行行代碼。用文言文來編程,確實也給古代文字的傳承找到了一條新路。


資料來源:愛範兒(ifanr)

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→