如果你學過某幾種程式語言,你或許會發現程式語言的世界彷彿是為了外國人而生的,許多的單詞通常都是英文單字,就算有極少數程式語言不講究英文程度,卻也會出現大量的英文字母與數字。雖說程式語言多半建立在英文的基礎上,但懂程式語言跟懂英文又是兩回事,對於非英語系國家的人來說,也多了一層學習障礙。最近有位中國留學生黃令東(Lingdong Huang)因為將中國的文言文設計為程式語言 wenyan-lang ,而被電子工程師學會雜誌 IEEE Spectrum 所報導。該程式語言從產生雛形至今不過一個多月,卻引起了許多華人的注意:
▲這不是什麼古書,而是文言文程式碼(圖片來源)
提到文言文,很多人可能想到以前上學時念國文課背課文的痛苦。文言文的長處在於文字使用少,同樣一句話只要少少的幾個字就能表達,而缺點就跟很多人學過的課文一樣,通常需要逐字的解讀,才能把整篇文章的意思完全掌握,雖說同樣是以漢字撰寫,但現代人在未經過訓練的情況下,並不容易輕鬆解讀文言文。
但跟多數基於英文的程式語言比起來, wenyan-lang 至少對懂漢字與中文的華人來說相對易懂些。不過,即便懂得使用文言文,程式撰寫仍然是另一碼事。wenyan-lang 的使用方式與其是說用文言文來編輯程式,不如說是用程式語言的邏輯去套文言文這個語言工具,使用時仍然有一定的規範,但對於熟悉編輯程式的開發者來說,適應這個可能比直接學怎麼用文言文來得快些:
▲程式介紹自然有文言文版,其中提到的一堆動物指的是 Go 語言(鼠)、Rust 語言(蟹)、鑽(Ruby 語言)、魚(Fish Shell)、蛇(Python)、象(PHP)、駱(Perl)、犀(JavaScript)(圖片來源)
▲wenyan-lang 的 Hello World 程式寫法(圖片來源)
根據 IEEE Spectrum 報導,wenyan-lang 的作者 Lingdong Huang 是一位上海長大,去年底剛在美國卡內基梅隆大學(Carnegie Mellon University)獲得電腦科學學位與藝術學位的學生。這套程式語言是他在就學期間發想,約在學期末前一個月內完成核心架構,現在已經可以透過該程式語言的 Github 專案網站上找到原始碼等資料。
該程式語言的創意來自於 Lingdong Huang 過去對中國古典著作的喜愛,作者在受訪時表示,他最近正在讀《淮南子》,這些閱歷及對文言文的喜愛讓他開發出這種獨樹一幟的程式語言。作者也提到,目前已經有數十種透過該程式語言撰寫的程式,大多是由愛好者自行撰寫出來。有些程式相當有意思。例如 pi_liuhui.wy 這支程式重現三國時代的數學家劉徽利用割圓術計算圓周率, divination.wy 這支程式將易經中描述的占卜方式以程式重現:
▲以 wenyan-lang 程式語言所撰寫的 divination.wy 程式(圖片來源)
以文言文來寫程式的一大難點,在於文言文沒有標點,讀者必須自行判斷斷句,才能知道正確的標點位置。為了克服這個問題,作者表示程式語言僅具備一定量的關鍵字,這樣一來, wenyan-lang 就能從每一段程式碼當中找出關鍵字來解密開發者想要的內容。而這個語言的成功開發,也讓許多華人注意到文言文其實也能變成程式語言。
現階段,程式語言的世界中仍有許多強力競爭者,wenyan-lang 這個初生之犢仍然有很大的努力空間。許多 wenyan-lang 的貢獻者正在努力研究 Python、Ruby、JavaScript、C ++和Java的編譯器、圖形庫和 GUI,以及提供人們編寫與共享程式碼的空間。至於 wenyan-lang 還能走得多長遠,還得看接下來它能綻放出什麼樣的火花:
▲wenyan-lang 編譯為 Javascript 的範例(圖片來源)
消息來源:IEEE Spectrum