東北話編程,大寫的服!這是一個喪心病狂的Github項目!
- 2020 年 3 月 6 日
- 筆記
閱讀本文大概需要 4.2 分鐘。
來自:開源最前線(ID:OpenSourceTop)
項目地址:https://github.com/zhanyong-wan/dongbei
還記得12月份刷爆朋友圈的那個文言文編程語言么?

這個項目是一位名為Huang Lingdong的大四學生創建的,當時,就連中科院計算所研究員、機器翻譯領域知名專家劉群老師都讚歎道:後生可畏。
近日,Github上一個名叫dongbei的開源編程項目,再一次引起大家關注,這是一個以東北方言詞彙為基本關鍵字的編程語言——dongbei 大寫的服!

該項目作者是一位 Google 的高級軟件工程師/技術主管,同時也是 Google C++測試框架 googletest 以及 googlemock 的原作者。(Github地址:https://github.com/zhanyong-wan/dongbei)
根據項目作者介紹:
dongbei可是填補了世界方言編程地圖上的一大片兒空地啊!這麼說吧,誰要是看了 dongbei 程序能憋住了不笑,我敬他是純爺們兒! 那它有啥特點咧?多了去了: 簡單啊!小學文化程度就行。您能看懂春晚不?能?那就沒問題。 好讀啊!看着看着包您不由自主地念出聲兒來。 開心啊!呃,做人嘛,最重要的是要開心。 開源啊!不但不要錢,而且不要臉 — 隨時隨地歡迎東北話高手打臉指正。 總而言之,dongbei 語言具有極高的娛技比(娛樂精
dongbei 編程語言的開發採用了業界領先的 TDD(TreeNewBee-Driven Development) 方式。 具體地說,就是每個功能都是先把文案寫好,八字沒一撇牛皮就吹起來了,然後根據牛皮寫測試案例,最後再實現功能讓牛皮不被吹破。 這樣做有兩大好處:第一每個功能都是有的放矢,不值得 tree new bee 的功能一概沒有。 第二確保了每個功能都有文案負責吹噓,開發者絕對不會養在深閨無人識。
再來就是系統支持的問題了,donbei只需要保證開發環境有Python 3,直接下載GitHub項目,跑src/dongbei.py,這事兒就成了。
我們還是先來個東北味兒的hello World程序吧:
嘮嘮:「唉呀,這嘎噠真他媽那啥!」。
用 utf-8 編碼保存。要是編輯器因為編碼錯誤埋汰你,那就把文件內容改成:
# -*- coding: utf-8 -*- 嘮嘮:「唉呀,這嘎噠真他媽那啥!」。
再試,應該就成了。然後在命令行窗口運行:
src/dongbei.py hello-world.dongbei
你應該看到執行結果:
唉呀,這嘎噠真他媽那啥!
語法規則
學習一門語言,先得了解它的詞法、語法和語義,下面我們就一點一點來了解一下:
詞法
字符串常量
一行代碼當中,要是出現配對的中文全角雙引號,比如
...「我是一個字符串」...
那麼引號當中的內容(我是一個字符串)會被當成一個字符串常量。
常數
除了用阿拉伯數字表示的十進制整數(比如 2、42、250,等等),0 到 10 的常數也可以用中文表達:
零一二三四五六七八九十
二也可以寫成兩或者倆。三也可以寫成仨。
語句
一個 dongbei 程序是由一串語句組成的。每個語句以句號(。)結束。為了表達程序員熾熱的感情,也可以用感嘆號(!)結束,意思和句號是一樣一樣的。請大家根據自己的心情任選使用。
1、變量
dongbei 語言允許使用任何字符串做變量名。定義變量如下:
老王是活雷鋒。
2、給變量賦值
dongbei 語言不整「賦值」這種文縐縐的詞兒。咱們叫「裝」。比如:
老王裝二。
可以理解為 C 語言的
lao_wang = 2;
要把一個活雷鋒的值清空回到原始狀態,可以用削:
削老王。
過後老王就啥也不是了。
3、增減變量
活雷鋒除了會裝,加加減減也是常見的操作。按沒病走兩步的規矩,這些操作的名字叫做:走走、稍稍、走X步、稍X步。比如:
老張裝二。 # 現在老張等於2 老張走走。 # 現在老張等於3 老張走兩步。 # 現在老張等於5 老張稍稍。 # 現在老張等於4 老張稍五步。 # 現在老張等於-1
4、輸出
要輸出信息,咱們得說「嘮嘮」。假定要說的信息是 YY,就得寫
嘮嘮:YY。
5、循環
磨嘰,就是一遍一遍循環。 所以,在 dongbei 語言里循環的寫法是:
老王從一到五磨嘰: # 老王從1走到5。 嘮嘮:老王! # 打印老王的當前值。 磨嘰完了! # 循環結束。
運行結果如下:
1 2 3 4 5
6、條件
雖然 dongbei 人都是活雷鋒,幹活的時候該講條件還是要講條件的。尋思是一項很有用的技能!比如有件事情(不妨叫做 XXX)只想在某個條件(不妨叫 CCC)成立的時候再做,就寫:
尋思:CCC ? 要行咧就 XXX
要是 CCC 不成立的時候俺們有另外一件事情 YYY 要做,那就寫:
尋思:CCC ? 要行咧就 XXX 要不行咧就 YYY
7、套路
「套路」這名字聽着嚇人,其實就是給一串常用的組合拳取一個名字,定義套路用這個格式:
套路名字 咋整: ... # 愛做的事兒 整完了。
下面定義一個叫「寫九九表」的套路。注意定義套路本身不會讓這個套路真的跑起來。所以下面這段程序跑的結果是啥也不做。
寫九九表咋整: # 定義套路 寫九九表。 老王從1到9磨嘰: 老張從老王到9磨嘰: 嘮嘮:老王、「*」、老張、「=」、老王乘老張。 # 打印 X*Y=Z 磨嘰完了。 嘮嘮:「」。 # 空一行。 磨嘰完了。 整完了。 # 結束套路定義。
想把上面的套路跑一遍,你得寫:
整寫九九表。
然後,你就可以輸出一份九九乘法表啦:
1*1=1 1*2=2 1*3=3 ... 8*8=64 8*9=72 9*9=81
項目的issue上,更是好多熱心網友給出建議:

你覺得這門東北方言的編程語言好不好使呢?如果你也對它感興趣,可以去Github上下載下來好好研究研究。
最後附上Github地址:https://github.com/zhanyong-wan/dongbei
<END>


