0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

中文编程语言——青语言开源发布

OSC开源社区 来源:OSC开源社区 2023-06-06 16:25 次阅读

长久以来,中文编程一直是开发者社区中争议不断的热点问题。一部分人认为,编程语言是符号化的语言,没有中英文之分,所以中文编程没有意义。

而另一部分人则认为跨语种学习编程,存在事实上的困难,提高了学习门槛。这样的讨论在社区中一直热度不减,成为经久不衰的话题

虽然关于中文编程有诸多争议,但这并没影响大家对其投入热情。最近又出现了一款新的开源中文编程语言——青语言

cd0c37f4-0415-11ee-90ce-dac502259ad0.png

据介绍,青语言是一门面向青少年、儿童和非专业人士的中文编程语言。它完全从零开始实现了代码文本到语法树的构建,语言内核参考了 Lisp语法上主要参考了 JavaScriptC# 实现运行在.NET 平台上,并使用动态链接库 DLL 的方式扩展功能。

青语言基础语法概览

第一个程序

@显示、“你好,编程世界”

注释

从分号到行末的都是注释,注释的内容不会作为代码执行,以两个;;开头是多行注释,直到另一个;;

;这是一行注释,这里的内容作为对代码的说明,不会被执行

;;
    这是一段注释
    支持多行注释
    这部分内容都不会执行
;;
数据类型
     ;空类型,表示不存在或者值为空


     ;逻辑类型,表示逻辑真


     ;逻辑类型,表示逻辑假


0xFF   ;二进制类型,表示二进制数据


123    ;这是整数


4.56   ;这是小数


“这是一段字符串”    ;用中文双引号括起来的部分是字符串
赋值
#甲 :123      ;用冒号表示在当前语境给变量#甲绑定值123 


#乙 = 4.56      ;用等于号表示顺着语境链向上查找变量#乙并绑定值4.56
取值

直接调用变量名,解释器会根据当前语境向上查找变量对应的值,并将值返回,例如经过上面的赋值之后,我们输入

#甲

将会看到这样的输出

>> 123

这里,前面的 >> 是输出提示符,后面的 123 是变量对应的值。

示例代码

贪吃蛇。该示例是一个图形界面程序,只能在青编辑器中运行。

@是墙 = @【#序】{
    #序 小于 20#序 大于等于 380#序 模 20 等于 0#序 模 20 等于 19  @随机食物 = @【】{
    #序:0
    执行 {
         #序 = #数学库@随机数【400】 
    }直到 
    (取反 @是墙【#序】) 且 (@查找【#蛇集合,#序】 小于 0)
    返回 #序#运行状态 = 真
#蛇集合 = 【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
        }  
    }
    
    如果 #运行状态 等于 假 且 #按键 等于 “Space” {
         #蛇集合 = 【110,109,108】
         #方向 = 2
         #下一方向 = 2
         #食物 = @随机食物【】
         @初始化【】
         #运行状态 = 真
    }
}

@显示窗口、#窗

#定时器 = @定时任务【300,元{
    如果 取反 #运行状态 {返回 空}
    #头:#蛇集合#0
    #方向 = #下一方向
    如果 #方向 等于 1 {
        #头 = #头 - 20 
    }再则 #方向 等于 2 {
        #头 = #头 + 1 
    }再则 #方向 等于 3 {
        #头 = #头 + 20 
    }再则 #方向 等于 4 {
        #头 = #头 -1 
    }
    
    如果 @是墙【#头】 或 (@查找【#蛇集合,#头】 大于等于 0){
        #运行状态 = 假 
        返回 空
    }
    
    #单元集合#头#背景色 = “#333333”
    @插入【#蛇集合,0,#头】

    如果 #头 等于 #食物 {
        #食物 = @随机食物【】
        #单元集合#食物#背景色 = “Red”
    }否则{
        #尾 = @取出【#蛇集合,@取长度【#蛇集合】-1】
        #单元集合#尾#背景色 = “white”
    }
    
    
    
}】

@启动定时任务、#定时器

运行效果:

cd21fba2-0415-11ee-90ce-dac502259ad0.gif

九九乘法表:


	

当 #甲:1,#甲 小于等于 9,#甲 加等 1 {

#文本:“”

#乙:1

当 #乙 小于等于 #甲 {

#文本 = #文本 + #甲 + “x” + #乙 + “=” + (#甲 * #乙) + “ ”

#乙 加等 1

@显示、#文本

cd2fb6e8-0415-11ee-90ce-dac502259ad0.png

上文提到青语言后端使用 .NET,因此它实现了跨平台兼容,支持主流操作系统。本次开源发布即提供了各个主流平台的可执行程序,下载后可以直接运行使用。

cd3a7b28-0415-11ee-90ce-dac502259ad0.png

除了桌面程序外,还提供了一个安卓端的 APP,能够实现手机上编程。

cd45c88e-0415-11ee-90ce-dac502259ad0.png

青语言项目地址:

https://www.oschina.net/p/qingyuyan https://gitee.com/NjinN/Qing https://qingyuyan.cn/

最后,如果你想了解更多中国人主导的编程语言,请查看: 《中国人主导编程语言列表


原文标题:中文编程语言——青语言开源发布

文章出处:【微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    9

    文章

    1878

    浏览量

    33157
  • 开源
    +关注

    关注

    3

    文章

    2991

    浏览量

    41723
  • 代码
    +关注

    关注

    30

    文章

    4556

    浏览量

    66814

原文标题:中文编程语言——青语言开源发布

文章出处:【微信号:OSC开源社区,微信公众号:OSC开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga用的是什么编程语言 fpga用什么语言开发

    fpga用的是什么编程语言 FPGA(现场可编程逻辑门阵列)主要使用的编程语言是硬件描述语言(H
    的头像 发表于 03-14 17:09 905次阅读

    plc编程语言与c语言的联系 c语言和PLC有什么区别

    PLC编程语言与C语言的联系 PLC(可编程逻辑控制器)是一种针对自动化控制系统的特殊计算机。PLC编程
    的头像 发表于 02-05 14:21 1090次阅读

    脚本语言编程语言的区别

    脚本语言编程语言是计算机语言的两个主要分类。尽管两者都是用于编写计算机程序的工具,但它们在设计和运行方式上存在一些显著的区别。下面将详细探讨脚本
    的头像 发表于 11-22 14:33 1406次阅读

    Python编程语言属于什么语言

    Python编程语言属于高级编程语言中的一种。它是一种通用、面向对象、解释型编程语言。Pytho
    的头像 发表于 11-22 14:31 652次阅读

    什么是C语言?单片机有什么特点?为什么要用C语言编程

    随着技术的发展,电子产品越来越多,方便了我们的日常生活,大多数电子产品上都有单片机,而单片机是通过执行软件逻辑来实现功能的。而单片机编程最合适的编程语言是汇编语言,但是最常用、最普及的
    的头像 发表于 11-21 10:06 727次阅读
    什么是C<b class='flag-5'>语言</b>?单片机有什么特点?为什么要用C<b class='flag-5'>语言</b><b class='flag-5'>编程</b>?

    基于Rust开发的编程语言

    Move 是一门由 Rust 语言开发的一门面向资产的编程语言,最早由 Facebook (现 Meta )投入大量的人力物力开发,用于 Libra (现 Dime )项目,处理全球性大规模支付系统的
    的头像 发表于 11-17 12:30 351次阅读

    TIOBE发布11月编程语言排行榜

     TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎,tiobe网站于2023年11月公布了编程
    的头像 发表于 11-13 14:45 717次阅读

    腾讯发布混元大语言模型

    腾讯发布混元大语言模型 腾讯全球数字生态大会上腾讯正式发布了混元大语言模型,参数规模超千亿,预训练语料超2万亿tokens。 作为腾讯自研的通用大
    的头像 发表于 09-07 10:23 854次阅读

    函数式编程语言Crumb简述

    Crumb 是最新开源编程语言发布后在 Reddit 的编程版块引起了广泛讨论。
    发表于 09-04 10:31 233次阅读
    函数式<b class='flag-5'>编程</b><b class='flag-5'>语言</b>Crumb简述

    五种支持plc编程语言有哪些

    在PLC控制系统设计中,不同型号的PLC编程软件对以上五种编程语言的支持种类是不同的,所以不但对PLC的硬件性能了解外,也要了解PLC对编程语言
    发表于 08-31 14:54 700次阅读
    五种支持plc<b class='flag-5'>编程</b>的<b class='flag-5'>语言</b>有哪些

    2023年受欢迎8款编程语言排名:Python 第二

    根据DevJobsScanner发布的报告,2023年度(从2022年1月到2023年5月)需求量最大的编程语言数据显示,JavaScript、Python和Java仍然是职场上备受欢迎的编程
    的头像 发表于 07-28 17:57 4551次阅读

    PLC编程语言的特点

    PLC的编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同与一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求
    的头像 发表于 07-04 17:13 597次阅读

    西门子PLC编程语言介绍

    PLC目前有5种标准的编程语言,包括图形化编程语言和文本化编程语言
    发表于 06-29 16:00 950次阅读
    西门子PLC<b class='flag-5'>编程</b><b class='flag-5'>语言</b>介绍

    基于PASCAL的高级编程语言——SCL编程语言

    根据该标准,可对用于可编程逻辑控制器的编程语言进行标准化。SCL 编程语言实现了该标准中定义的 ST
    发表于 06-20 10:20 1074次阅读
    基于PASCAL的高级<b class='flag-5'>编程</b><b class='flag-5'>语言</b>——SCL<b class='flag-5'>编程</b><b class='flag-5'>语言</b>

    中文C语言编程玩转物联网华为鸿蒙Hi3861开发-基础案例合集

    继《一套支持中文C语言编程的鸿蒙Hi3861智能硬件开发套件》发布后,中文C语言
    发表于 05-08 23:50