畢竟有易語言在前,有人認為中文可以降低國人學習編程的門檻,也增強漢語的國際地位。然而最近大火的文言文編程語言,讓你明白什麼叫“中文比英語還難”。
Hello wenyan
最近有個 GitHub 項目火了 —— 文言編程語言 / wenyan-lang。
項目地址:https://github.com/LingDong-/wenyan-lang
這一項目並不是簡單的將程序中的英文字符換成了中文,而是利用 NLP 的一些技術,將文言文程序語法轉換到 JavaScript 或 Python 運行,有一定的技術難度。項目問世幾日即獲贊 2.2K,還得到了很多人的微博轉發。
學語言嘛,當然先從 “Hello world” 開始,看看文言版怎麼寫:
<code>1 吾有一數。曰三。名之曰「甲」。2 為是「甲」遍。3 吾有一言。曰「「問天地好在。」」。書之。4 云云。/<code>
沒看懂,編譯成 JavaScript:
<code>1 var n = 3;2 for (var i = 0; i < n; i++) {3 console.log("問天地好在。");4 }/<code>
運行:
<code>1 問天地好在。2 問天地好在。3 問天地好在。/<code>
完全的中文編程有木有,使用古漢語語法,具有圖靈完整性,可以編譯成 JavaScript 或 Python。
如同古人篆書一般,一頓之乎者也,程序寫好了!
基礎語法
趕緊學起來,第一章變量走起,中文編程肯定不能用 abc,還好我們有甲乙丙:
true/false 我們也有對應的 陽/陰(繁體的陽/陰),類型就稱為“爻”(卦符的基本符號):
if 判斷也沒問題:
循環更為簡潔,直接聲明次數,最後以云云結尾:
加減乘除一應俱全,連邏輯運算符都支持:
容器類型也支持,而且尊重漢語習慣,首個下標是從一開始:
下面是進階語法了,定義一個函數 吾有一術:
代碼實例
作者提供了經典程序題目的文言版代碼,比如埃拉託斯特尼篩法、 快速排序、曼德博集合、漢諾塔。
另外作者還提供了在線 IDE,可以直接編譯執行代碼。
快排
曼德博集合
國內程序員熱議
@minexo79:這到底是吸了多少才能做出這種東西?
@困的周叔叔:有種自己編譯原理白學了的感覺
@是俊不是腦殘粉:別人的大四,佩服啦
@溫興月:如果編程最早用文言文,中國人學幾個月,外國人學幾年
@imSuperZhang:這特麼比英文的還難
wenyan 的 GitHub issue 中,除了很多讚揚之外,還有不少認真提建議的,
也有在打口水仗的……
看完這些代碼讓我感覺:
《九章算術》就是一本算法導論;
《孫子兵法》就是一本安全攻防;
《易經》大概是一本二進制逆向吧...
本文綜合自面向人生編程 ,程序員的那些事
喜歡請多多關注易傑智科技!
閱讀更多 易傑智科技 的文章