東北話編程,大寫的服!這是一個喪心病狂的Github項目!

閱讀本文大概需要 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>