首先介绍开发一下语言:mcuScript,他是一个支持同时支持中文编程和英文编程的弱数据类型的脚本语言。相关介绍可参考前面的两篇文章:
彭贞:mcuScript一个洋名字的中文(汉语)编程语言,初体验zhuanlan.zhihu.com彭贞:mcuScript中文编程,Windows解释器发布(很小1MB多点,含测试代码),有兴趣下载来玩zhuanlan.zhihu.com既然叫mcuScript,单片机等mcu(微控制器)才是他的主战场。让我们看一个真实的案例。
第一步:打开一个文本编辑器,啥都行。
第二步:写入中文代码。
/*项目名称: wp9创建时间: 2020年9月25日
*/显示器=OLED({
addr:0x78,
scl:SYS.pin("D6"),
sda:SYS.pin("D7")
});功能块 得到星期(n)
{星期 = ["一","二","三","四","五","六","日"];返回 "星期"+星期[n];
}//得到星期(时间.星期());显示器.显示(0,0,"正在初始化...");智能配网({"wifi名":"ljs4f","密码":"12345678","成功时":功能块(){全局的 显示器;显示器.清屏();//显示器.显示(0,0,"成功连接到wifi");周期定时器(功能块(){全局的 显示器;时间 = 时间日期();时年量 = 时间.年();时月量 = 时间.月();时日量 = 时间.号();时时量 = 时间.时();时分量 = 时间.分();时秒量 = 时间.秒();如果 (时月量 < 10) {时月量 = "0"+时月量;}如果 (时日量 < 10) {时日量 = "0"+时日量;}如果 (时时量 < 10) {时时量 = "0"+时时量;}如果 (时分量 < 10) {时分量 = "0"+时分量;}如果 (时秒量 < 10) {时秒量 = "0"+时秒量;}显示器.显示(14,0,时年量+"年"+时月量+"月"+时日量+"日");显示器.显示(40,2,时时量+":"+时分量+":"+时秒量);显示器.显示(50,4,得到星期(时间.星期()));}, 100);}
});
第三步:刷入单片机,观看代码效果。
知乎视频www.zhihu.com真实案例的尾巴:这是一个真实的案例(mcuScript已经在少量应用了),写出这段中文代码的是一个从来没有学过编程的25岁青年(我将他的源码原封不动的复制了过来),视频也是演示他录制的,这是我对他的采访,看看一个非程序员是如何看待中文编程的:
最后,来看一下mcuScript是怎么扩展的(说人话就是:脚本是怎么调用C语言函数的)。
以单片机中的OLED对象为例:
其实核心方法一幕了然,mcuScript使用一个结构体数组,进行对象的扩展,数组中的结构体包含方法的英文名和中文名,这么做当然会造成效率的降低(因为每个标识符都要和中英文名对比一次或两次),但我认为这点效率损失是值得的,相对于开发而言。
方法的结构体类型。
不知道大家看了一个真实的非程序员对中文编程的看法后,有什么想法,欢迎来讨论。我知道有些程序员对中文编程不屑一顾,但是事实就是中文编程对广大非程序员确实很友好,对他们来说降低了入门门槛,对他们来说还真是刚需。