中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。
畢竟有易語言在前,有人認為中文可以降低國人學習編程的門檻,也增強漢語的國際地位。然而最近大火的文言文編程語言,讓你明白什么叫“中文比英語還難”。
Hello wenyan
最近有個 GitHub 項目火了 —— 文言編程語言 / wenyan-lang。
項目地址:https://github.com/LingDong-/wenyan-lang
這一項目并不是簡單的將程序中的英文字符換成了中文,而是利用 NLP 的一些技術,將文言文程序語法轉換到 JavaScript 或 Python 運行,有一定的技術難度。項目問世幾日即獲贊 2.2K,還得到了很多人的微博轉發。
學語言嘛,當然先從 “Hello world” 開始,看看文言版怎么寫:
吾有一數。曰三。名之曰「甲」。為是「甲」遍。 吾有一言。曰「「問天地好在。」」。書之。云云。沒看懂,編譯成 JavaScript:
var n = 3;for (var i = 0; i < n; i++) { console.log("問天地好在。");}運行:
問天地好在。問天地好在。問天地好在。完全的中文編程有木有,使用古漢語語法,具有圖靈完整性,可以編譯成 JavaScript 或 Python。
如同古人篆書一般,一頓之乎者也,程序寫好了!
基礎語法
趕緊學起來,第一章變量走起,中文編程肯定不能用 abc,還好我們有甲乙丙:
| wenyan | JavaScript |
| 吾有一數。曰三。名之曰「甲」。 | var a = 3; |
| 有數五十。名之曰「大衍」。 | var dayan = 50; |
| 吾有一言。曰「「噫吁戲」」。名之曰「乙」。 | var b = "alas!"; |
true/false 我們也有對應的 陽/陰(繁體的陽/陰),類型就稱為“爻”(卦符的基本符號):
| wenyan | JavaScript |
| 吾有一爻。曰陰。名之曰「丙」。 | var c = false; |
if 判斷也沒問題:
| wenyan | JavaScript |
| 若三不大於五者。乃得「「想當然耳」」。若非。乃得「「怪哉」」也。 | if(3<=5){return "of course"}else{return "no way"} |
循環更為簡潔,直接聲明次數,最后以云云結尾:
| wenyan | JavaScript |
| 為是百遍。?? 云云。 | for (var i = 0; i < 100; i++){ ... } |
| 恆為是。?? 云云。 | while (true) { ... } |
| 乃止。 | break; |
加減乘除一應俱全,連邏輯運算符都支持:
| wenyan | JavaScript |
| 加一以二。乘其以三。 | (1+2)*3 |
| 除十以三。所餘幾何。 | 10%3 |
| 減七百五十六以四百三十三。名之曰「甲」。 | var a = 756-433; |
| 夫「甲」「乙」中有陽乎。 | `a |
容器類型也支持,而且尊重漢語習慣,首個下標是從一開始:
| wenyan | JavaScript |
| 吾有一列。名之曰「甲」。充「甲」以四。以二。 | var a = []; a.push(4, 2); |
| 夫「寶劍」之長。 | sword.length; |
| 夫「甲」之一。 | a[0] |
| 夫「玫瑰」之「「名」」。 | rose["name"] |
下面是進階語法了,定義一個函數?吾有一術:
| wenyan | JavaScript |
| 吾有一術。名之曰「吸星大法」。是術曰。??是謂「吸星大法」之術也。 | function f(){...} |
| 吾有一術。名之曰「六脈神劍」。欲行是術。必先得六數。曰「甲」。曰「乙」。曰「丙」。曰「丁」。曰「戊」。曰「己」乃行是術曰。??是謂「六脈神劍」之術也。 | function f(a,b,c,d,e,f){...} |
| 吾有一術。名之曰「翻倍」。欲行是術。必先得一數。曰「甲」。乃行是術曰。乘「甲」以二。名之曰「乙」。乃得「乙」。是謂「翻倍」之術也。 | function double(a){var b = a * 2; return b;} |
| 施「翻倍」於「大衍」。 | double(dayan); |
| 吾有一數。曰五。書之。 | console.log(5); |
代碼實例
作者提供了經典程序題目的文言版代碼,比如埃拉托斯特尼篩法、 快速排序、曼德博集合、漢諾塔。
另外作者還提供了在線 IDE,可以直接編譯執行代碼。
快排
點擊查看大圖曼德博集合
點擊查看大圖看完這些代碼讓我感覺:
《九章算術》就是一本算法導論;
《孫子兵法》就是一本安全攻防;
《易經》大概是一本二進制逆向吧...
總結
以上是生活随笔為你收集整理的中文编程语言_文言文编程语言,让你明白什么叫“中文比英语还难”。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 固态硬盘内存容量选择:250GB够用吗?
- 下一篇: 内存时序:系统性能的关键因素