電腦編程的轉化能力 你也可以為文言文編程!

文: 教育傳媒

教育專業 專家分享 教育傳媒 電腦編程 文言文 Java 物件導向程式語言 Hello World 編程 文學

編程是近年學界的熱門話題, 我們一般都會選擇學習C 語言、Java 或 Python等常用的物件導向程式語言(Object-oriented programming)。最近,國內有一位名為Lingdong Huang 的軟件工程師,開發了一種以文言文編寫的編程語言,一夜間成為網絡熱話!文言文程式語言讓編程課變得優雅,同時亦可考驗一下我們在編程語言之間的轉化能力。

首先,讓我們先看看Hello World寫法:
吾有一數。曰三。名之曰「甲」。為是「甲」遍。 吾有一言。曰「問天地好在。」。書之。云云。
當我們將它翻譯為JavaScript代碼:
var n = 3;for (var i = 0; i < n; i++) { console.log(" 問天地好在。");}
其輸出是:
問天地好在。問天地好在。問天地好在。
Hello World寫法不難明白,至於其他程式碼,大家又看得明白嗎?

文言文編程 JavaScript
吾有一數。曰三。名之曰「甲」。 var a = 3;
吾有一爻。曰陰。名之曰「乙」。 var b = false;
吾有一列。名之曰「丙」。 var c = [];
加一以二。 1+2
除十以三。所餘幾何。 10%3


以下是以文言文編寫的「乘算口訣」,大家看看當中的語法是否與中國語文科所學的「之」、「乎」、「者」、「也」同出一轍呢?

如果大家細心看看編碼,不難發現「若」其實代表着if,「若非」代表else if。不過在文言文中,我們不會用括號來代表迴圈的運算範圍,反之我們會在結尾寫上「也」、「云云」等作結。如果大家想知道上述文言文編碼的輸出和有關編碼的Javascript翻譯本,可掃描右方QRCode了解詳情。


這個文言文編程雖有別於我們在常用的Pascal、C、Java、JavaScript或Python,但背後基本的邏輯推理架構與演算法其實是共通的,因此我們若精通一種程式語言後,學習另一個程式語言的難度通常不會太高。當然,若在課程上教授尚未精通任何一個程式語言的同學,再加上文言文,似乎老師要再努力一點了!

梅志文
香港電腦教育學會