智東西(公眾號:zhidxcom)
編| 李水青

智(zhi)東(dong)西12月19日消息,近日,世界上第一(yi)種基于(yu)中國(guo)文言文的編(bian)程語(yu)言誕生,志愿者已經用它編(bian)寫了了幾十個程序,如:基于(yu)古(gu)代中國(guo)算命算法的程序等(deng)。

這種新語言的(de)開發者名叫Huang Lingdong,是卡內基梅隆大學的(de)一位95后本科(ke)生。他之前(qian)曾(ceng)利用計(ji)算(suan)機生成過(guo)一幅無限的(de)的(de)中(zhong)國(guo)(guo)山水(shui)畫。他還參(can)與創造了第一部(bu),也是迄今(jin)為止唯一部(bu)人工智能制作的(de)中(zhong)國(guo)(guo)歌劇。

大約一(yi)年前,Huang完(wan)成了文言(yan)文編程(cheng)的(de)核心部(bu)分。它包括一(yi)個(ge)渲染器,可以以類(lei)似于古代(dai)中(zhong)文文本頁面(mian)的(de)方式顯示程(cheng)序。據了解,這幾(ji)乎是(shi)(shi)(shi)世界(jie)上(shang)第一(yi)門文言(yan)文編程(cheng)語言(yan),但是(shi)(shi)(shi)其底層還(huan)是(shi)(shi)(shi)需(xu)要轉換成Python或JavaScript運行。

一、文言文程序算命、算圓周率

Huang在(zai)上(shang)海(hai)長大,在(zai)學(xue)校里學(xue)過基本的文(wen)言(yan)文(wen)。他(ta)回憶說:“我對中文(wen)很著(zhu)迷,十幾歲的時(shi)候就讀了很多文(wen)言(yan)文(wen),現在(zai)在(zai)讀《淮南(nan)子(zi)(zi)》。”《淮南(nan)子(zi)(zi)》是公元前2世(shi)紀(ji)中國古代淮南(nan)王庭(ting)上(shang)編(bian)纂的一部關(guan)于(yu)哲學(xue)和治國之道的著(zhu)作。‘

他說,目(mu)前(qian)市面(mian)上已經有數十種(zhong)程序是用(yong)文(wen)(wen)言文(wen)(wen)寫的,其(qi)中(zhong)(zhong)許多是中(zhong)(zhong)國(guo)古(gu)代數學(xue)書(shu)籍中(zhong)(zhong)的數學(xue)算法的實現。例(li)如,pi_liuhui.wy重現了公元3世(shi)紀數學(xue)家劉輝如何計(ji)算圓(yuan)周(zhou)率的方(fang)法,Crt.wy是中(zhong)(zhong)國(guo)余數定理(li),Pascal_triangle.wy計(ji)算了帕斯卡三角形等。

世界上第一種文言文編程語言火了!95后CMU本科生開創,能學《易經》算命

據了解(jie),黃最喜歡用文(wen)言(yan)語(yu)編寫(xie)的程(cheng)序之一是(shi)“ divination.wy,是(shi)《易經》中描(miao)述的算(suan)命算(suan)法。”他補充說:“我(wo)本(ben)來打(da)算(suan)自己實(shi)施,但(dan)是(shi)熱情(qing)的貢獻者擊敗(bai)了我(wo)。”

二、斷句問題成挑戰

編程(cheng)用了繁(fan)體中文(wen)(wen)字符(fu)和文(wen)(wen)言文(wen)(wen)語法,發展這門(men)語言的一個(ge)挑戰是文(wen)(wen)言文(wen)(wen)如何(he)不用空格把(ba)句(ju)(ju)子分成單詞。“因(yin)此如何(he)分割(ge)句(ju)(ju)子是讀者而不是程(cheng)序員的任務。”Huang說。

例如(ru)(ru),如(ru)(ru)果以(yi)英語讀(du)寫的讀(du)者看到了“煎(jian)餅糊”,他(ta)們將(jiang)(jiang)不(bu)得(de)不(bu)依靠其(qi)先驗知識將(jiang)(jiang)其(qi)解讀(du)為“煎(jian)餅面(mian)糊”,而不(bu)是“煎(jian)餅時煎(jian)糊了”。

為(wei)了克服(fu)這(zhe)一(yi)挑(tiao)戰,Huang指出編(bian)程語言僅(jin)具(ju)有(you)一(yi)定數量的(de)關鍵(jian)字。因此(ci),文(wen)言文(wen)編(bian)程在每個程序中(zhong)從最(zui)長(chang)的(de)關鍵(jian)字變成最(zui)短的(de)關鍵(jian)字,從而解密程序員(yuan)想要(yao)什么。最(zui)終,這(zhe)種(zhong)方法奏效了。

Huang的文(wen)言文(wen)編程(cheng)軟件(jian)受到了(le)廣泛關注,他表示為(wei)此(ci)感到驚(jing)訝和興奮:“我以為(wei)以前(qian)做過很(hen)多很(hen)酷的項目(mu),但是(shi)這(zhe)個項目(mu)在中國格外流行。”

Huang說:“在(zai)此之(zhi)前,我(wo)(wo)主(zhu)要按照自己的(de)節(jie)奏進行(xing)工作(zuo),但是現在(zai)合作(zuo)變得至(zhi)關重要。除了共(gong)同編(bian)寫代碼(ma)外,我(wo)(wo)還必(bi)須檢查其(qi)他人的(de)代碼(ma),仔細評估每條建議。但是,我(wo)(wo)認為我(wo)(wo)很享受這次體驗(yan),尤其(qi)是因(yin)為我(wo)(wo)得到(dao)了一大(da)幫杰(jie)出的(de)貢獻者。”

世界上第一種文言文編程語言火了!95后CMU本科生開創,能學《易經》算命

三、建社區以保持語言的生命力

目前,文(wen)言文(wen)編(bian)程的(de)貢(gong)獻者正在研究(jiu)Python、Ruby、JavaScript、C++和Java編(bian)譯(yi)器,圖(tu)形庫和圖(tu)形用戶界面,以及(ji)一(yi)個供人們編(bian)寫和共(gong)享代碼(ma)片段的(de)摘錄站點。

Huang說(shuo):“最(zui)重要(yao)(yao)的是(shi),我們(men)正在尋找圍繞(rao)該語言(yan)建立社(she)(she)區的方法。我認為(wei)這可能是(shi)其(qi)生存的關鍵(jian)時(shi)刻。人們(men)最(zui)初有(you)熱情,但是(shi)要(yao)(yao)保持語言(yan)的生命力,就需要(yao)(yao)有(you)一(yi)個用(yong)戶(hu)社(she)(she)區。”

此外,Huang目(mu)前正(zheng)在研究文言文編(bian)程(cheng)的(de)(de)入(ru)門(men)指南,該文本(ben)身(shen)是用古(gu)典中(zhong)文編(bian)寫的(de)(de)。他說:“大(da)約40%完(wan)成了,目(mu)標讀者(zhe)是完(wan)全(quan)沒有編(bian)程(cheng)經驗的(de)(de)人。但是,我需要與上述讀者(zhe)進(jin)行測試,以確保它的(de)(de)實用性(xing)。”

Huang說:“總而(er)言(yan)之,現在我有(you)了自己(ji)的(de)(de)編程語言(yan),這(zhe)種語言(yan)可能受(shou)到許多像(xiang)我這(zhe)樣的(de)(de)文(wen)(wen)言(yan)文(wen)(wen)愛好者的(de)(de)歡迎,我認為(wei)發明自己(ji)的(de)(de)編程語言(yan)是每個程序員都會想到的(de)(de)一個想法。”

結語:文化傳承和開源精神

也許有人會認為,文(wen)(wen)言文(wen)(wen)編程(cheng)并沒有那么大的實用價值,但是(shi)這并不失為一種傳承(cheng)文(wen)(wen)脈、保護文(wen)(wen)心的好(hao)方(fang)法(fa)。

正如(ru)在文(wen)言文(wen)編(bian)程(cheng)的(de)(de)項(xiang)目開篇中,Huang回顧了從倉頡造(zao)字到堯(yao)舜時代的(de)(de)結繩和(he)數手指計(ji)算(suan),從魯班的(de)(de)木鳶到諸葛亮(liang)的(de)(de)木牛流馬(ma)的(de)(de)歷史,希望自(zi)己作為(wei)(wei)留(liu)學(xue)海外的(de)(de)中華學(xue)子(zi),不因年輕或者知(zhi)識(shi)的(de)(de)浩瀚無涯而(er)退(tui)縮,并認(ren)為(wei)(wei)這就是開源的(de)(de)精神內核(he)。

世界上第一種文言文編程語言火了!95后CMU本科生開創,能學《易經》算命

▲文(wen)言文(wen)編程的項(xiang)目開(kai)篇介紹

在線地址(zhi)://wenyan-lang.lingdong.works/ide.html

文(wen)章來(lai)源:IEEE.