夫唐、虞之世,結繩而足治,屈指而足算。是時豈料百代之後,計算機械之巧,精於公輸之木鳶,善於武侯之流馬;程式語言之多,繁若《天官》之星宿,奇勝《山經》之走獸。鼠、蟹、鑽、魚,或以速稱……
这不是「请朗读并背诵全文」系列,而是一个 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 表示自己对于文言文十分着迷,在读大学之前就阅读了大量文言文书籍,现在他正在读的是《淮南子》,而这本书里有一句话:
昔者苍颉作书,而天雨粟、鬼夜哭。
这句话讲的仓颉造字,惊天地泣鬼神的故事。文字是世界上最伟大的发明之一,从此历史得以记载,知识可以传播。而在这个互联网时代,组成整个庞大数字世界的,则是一行行代码。用文言文来编程,确实也给古代文字的传承找到了一条新路。