長久以來,中文編程一直是開發(fā)者社區(qū)中爭議不斷的熱點問題。一部分人認為,編程語言是符號化的語言,沒有中英文之分,所以中文編程沒有意義。
而另一部分人則認為跨語種學習編程,存在事實上的困難,提高了學習門檻。這樣的討論在社區(qū)中一直熱度不減,成為經久不衰的話題。
雖然關于中文編程有諸多爭議,但這并沒影響大家對其投入熱情。最近又出現了一款新的開源中文編程語言——青語言。
據介紹,青語言是一門面向青少年、兒童和非專業(yè)人士的中文編程語言。它完全從零開始實現了代碼文本到語法樹的構建,語言內核參考了 Lisp,語法上主要參考了 JavaScript,以 C# 實現,運行在.NET 平臺上,并使用動態(tài)鏈接庫 DLL 的方式擴展功能。
青語言基礎語法概覽
第一個程序
@顯示、“你好,編程世界”
注釋
從分號到行末的都是注釋,注釋的內容不會作為代碼執(zhí)行,以兩個;;開頭是多行注釋,直到另一個;;
;這是一行注釋,這里的內容作為對代碼的說明,不會被執(zhí)行 ;; 這是一段注釋 支持多行注釋 這部分內容都不會執(zhí)行 ;;數據類型
空 ;空類型,表示不存在或者值為空 真 ;邏輯類型,表示邏輯真 假 ;邏輯類型,表示邏輯假 0xFF ;二進制類型,表示二進制數據 123 ;這是整數 4.56 ;這是小數 “這是一段字符串” ;用中文雙引號括起來的部分是字符串賦值
#甲 :123 ;用冒號表示在當前語境給變量#甲綁定值123 #乙 = 4.56 ;用等于號表示順著語境鏈向上查找變量#乙并綁定值4.56取值
直接調用變量名,解釋器會根據當前語境向上查找變量對應的值,并將值返回,例如經過上面的賦值之后,我們輸入
#甲
將會看到這樣的輸出
>> 123
這里,前面的 >> 是輸出提示符,后面的 123 是變量對應的值。
示例代碼
貪吃蛇。該示例是一個圖形界面程序,只能在青編輯器中運行。
@是墻 = @【#序】{
#序 小于 20
或
#序 大于等于 380
或
#序 模 20 等于 0
或
#序 模 20 等于 19
}
@隨機食物 = @【】{
#序:0
執(zhí)行 {
#序 = #數學庫@隨機數【400】
}直到
(取反 @是墻【#序】) 且 (@查找【#蛇集合,#序】 小于 0)
返回 #序
}
#運行狀態(tài) = 真
#蛇集合 = 【110,109,108】
#食物 = 275
#方向 = 2
#下一方向 = 2
#窗 = @生成圖形、《窗口 #寬=410,#高=440,#標題=“貪吃蛇”》
#單元集合=【】
當 #行=0,#行 小于 20,#行 加等 1 {
當 #列=0,#列 小于 20,#列 加等 1 {
#單元:@生成圖形、《面板 #寬=20,#高=20,#X=#列*20,#Y=#行*20》
@追加【#單元集合,#單元】
}
}
@初始化 = @【】{
當 #序:0,#序 小于 400,#序 加等 1 {
如果 @是墻【#序】{
#單元集合#序#邊框色 = “#009933”
#單元集合#序#邊框寬 = 2
} 否則 {
#單元集合#序#背景色 = “white”
}
}
遍歷 #蛇集合 為 #序 {
#單元集合#序#背景色 = “#333333”
}
#單元集合#食物#背景色 = “Red”
}
@初始化【】
#窗@加子集、#單元集合
#窗@鍵盤按下命令 = @【#按鍵】{
如果 #按鍵 等于 “Up”{
如果 #方向 不等于 3 {
#下一方向 = 1
}
}再則 #按鍵 等于 “Right”{
如果 #方向 不等于 4 {
#下一方向 = 2
}
}再則 #按鍵 等于 “Down”{
如果 #方向 不等于 1 {
#下一方向 = 3
}
}再則 #按鍵 等于 “Left” {
如果 #方向 不等于 2 {
#下一方向 = 4
}
}
如果 #運行狀態(tài) 等于 假 且 #按鍵 等于 “Space” {
#蛇集合 = 【110,109,108】
#方向 = 2
#下一方向 = 2
#食物 = @隨機食物【】
@初始化【】
#運行狀態(tài) = 真
}
}
@顯示窗口、#窗
#定時器 = @定時任務【300,元{
如果 取反 #運行狀態(tài) {返回 空}
#頭:#蛇集合#0
#方向 = #下一方向
如果 #方向 等于 1 {
#頭 = #頭 - 20
}再則 #方向 等于 2 {
#頭 = #頭 + 1
}再則 #方向 等于 3 {
#頭 = #頭 + 20
}再則 #方向 等于 4 {
#頭 = #頭 -1
}
如果 @是墻【#頭】 或 (@查找【#蛇集合,#頭】 大于等于 0){
#運行狀態(tài) = 假
返回 空
}
#單元集合#頭#背景色 = “#333333”
@插入【#蛇集合,0,#頭】
如果 #頭 等于 #食物 {
#食物 = @隨機食物【】
#單元集合#食物#背景色 = “Red”
}否則{
#尾 = @取出【#蛇集合,@取長度【#蛇集合】-1】
#單元集合#尾#背景色 = “white”
}
}】
@啟動定時任務、#定時器
運行效果:
九九乘法表:
當 #甲:1,#甲 小于等于 9,#甲 加等 1 {
#文本:“”
#乙:1
當 #乙 小于等于 #甲 {
#文本 = #文本 + #甲 + “x” + #乙 + “=” + (#甲 * #乙) + “ ”
#乙 加等 1
}
@顯示、#文本
}
上文提到青語言后端使用 .NET,因此它實現了跨平臺兼容,支持主流操作系統(tǒng)。本次開源發(fā)布即提供了各個主流平臺的可執(zhí)行程序,下載后可以直接運行使用。
除了桌面程序外,還提供了一個安卓端的 APP,能夠實現手機上編程。
青語言項目地址:
https://www.oschina.net/p/qingyuyan https://gitee.com/NjinN/Qing https://qingyuyan.cn/
最后,如果你想了解更多中國人主導的編程語言,請查看: 《中國人主導編程語言列表》
原文標題:中文編程語言——青語言開源發(fā)布
文章出處:【微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
-
編程語言
+關注
關注
10文章
1931瀏覽量
34551 -
開源
+關注
關注
3文章
3227瀏覽量
42343 -
代碼
+關注
關注
30文章
4728瀏覽量
68248
原文標題:中文編程語言——青語言開源發(fā)布
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論