已於近日上線,原始碼庫也已在碼雲公開,歡迎大家試用並反饋,待收集到一定數量的反饋並做適當修改和補充後就會推出正式版。
關注草蟒的朋友們可能知道之前有一個草蟒3.8.0,此版本可以說是程式語言中文化的試水之作,已經停止更新。草蟒3.10吸取了前作的經驗教訓,解決了一些基本漢化問題,是兩年來的探索努力和社群支援的成果,筆者打算提供長期維護和更新。
套路 問候(誰): 列印(誰, '你吃了嗎?') 問候('小美') # 結果:小美 你吃了嗎?
>>> 匯入 日時 >>> 日時.〇日期.今日().轉字串() '週一 2022 年 3 月 21 日 00:00:00'
# 畫一個五角星 從 海龜 匯入 * 顏色('黃色', '紅色') 開始填充() 取 i 於 範圍(5): 前進(200) 右轉(144) 結束填充() 完成()
關鍵字漢化簡單說明
相比於之前的版本,Python 3.10 的關鍵字漢化要更簡單。Python 官網提供了一個關於如何更改語法的。我們只需增加中文關鍵字,因此實際上只涉及一個關鍵步驟,如下所示(假設使用Windows 10平臺,具體修改請參見原始碼):
-
修改
Grammar/python.gram
和Tools/peg_generator/pegen/c_generator.py
,然後在cmd中執行build.bat --regen
,以重新生成Parser/parser.c
。
Lib/keyword.py 的重新生成可以在編譯前或編譯後進行,只需修改 Tools/peg_generator/pegen/keywordgen.py
,具體生成命令請參見 keyword.py 檔案最開始的說明。
特殊漢字元號(〇、々、匚、爻)說明
英語程式語言中通常利用字母的大小寫來區分不同型別的識別符號,另外還通過加字尾(例如 s)來區分名詞性概念的單複數(即區分個體與集合)。作為一門翻譯過來的程式語言,草蟒借用了四個漢字來從形式和視覺上表現上述現象。
-
〇:類名以
〇
開頭,對應英語中類名以大寫字母開頭;建議讀作 ou。 -
爻:異常(包括警告)名以
爻
(視為兩個 ×)開頭,建議讀作 cha。各種異常也是類,但如果同樣以 〇 開頭,那麼在編輯器中輸入全域性類名的第一個字 〇 時,將跳出大量異常類(有 60 多個),非常影響程式設計體驗,故對異常命名另作規定。 -
匚:全域性常數名以
匚
開頭,對應英語中的全大寫常數名;建議讀作 chang。 -
々:在需要區分個體與集合的情況下,在個體名詞後加
々
表示集合物件(例如列表、字典等),對應英語中的字尾 s;建議讀作 es。
使用這些漢字元號之後,識別符號的漢化更加簡便,不僅能順利地繼承原語言的優勢,而且以極小的代價豐富了中文程式語言的語彙。為了支援這些漢字元號的輸入,我們需要對輸入法進行自定義設定。另外,以上規定皆為一般原則,某些情況下不排除變通處理。
以上規則不僅適用於python的漢化,也能很自然地應用於其他程式語言的漢化,範例參見筆者對go語言匯出識別符號的處理()。
中文程式語言發展之路
何謂中文程式設計?筆者認為,主要使用中文(包括中文關鍵字或保留字)開發計算機程式就是中文程式設計。相應地,中文程式語言就是支援主要使用中文進行程式開發的計算機程式語言。
近年來,關於中文程式設計的討論和實踐很是熱鬧,B站和頭條上不時能看到新推出的中文程式語言或環境。由此可見,民間對中文程式語言的呼聲很高。然而,令人失望的是,大廠和學界對此需求直接無視。
要發展中文程式語言,主要有兩條路:自研和漢化。自研語言的門檻非常高,需要非凡的能力、精力和/或財力,就算大廠也很難確保成功,普通人更不必考慮。漢化則不然,無論程式設計師還是程式設計愛好者,只要懂一點英語就能參與。
在等候自研中文程式語言佳音的同時,有志之士不妨投入漢化事業?