适合学习C语言开源项目——嵌入式脚本语言 Berry
嵌入式脚本语言 Berry github网址 :https://github.com/Skiars/berry
Berry 是一款面向小型嵌入式系统的脚本语言,目前发布了 0.1.0 版本。相比于其他脚本语言,Berry 更加精简,因此更适合在单片机上运行。该版本的语言主要特性为:
-
基本类型
-
数值类型:整数(
int
)和浮点数(real
) -
布尔类型:
true
和false
-
字符串:使用单引号或者双引号包围的文本
-
List:连续存储列表,例如
[1, 2, 3]
-
Map:Hash 表,例如
{ 'a': 1, 2: 3, 'map': {} }
-
Range:包含一个下限值和上限值,如
0..5
-
-
运算符和表达式
-
赋值运算符:
=
,+=
,-=
,*=
,/=
,%=
,&=
,|=
,^=
,<<=
,>>=
-
关系运算符:
<
,<=
,==
,!=
,>
,>=
-
逻辑运算符:
&&
,||
,!
-
算术运算符:
+
,-
,*
,/
,%
-
位运算符:
&
,|
,~
,^
,<<
,>>
-
域运算符:
.
-
下标运算符:
[]
-
字符串拼接运算符:
+
-
括号:
()
-
-
控制结构
-
条件语句:
if-else
-
迭代语句:
while
和for
-
跳转语句:
break
和continue
-
-
函数
-
局部变量和块级作用域
-
返回语句
-
嵌套函数定义
-
闭包和 Upvalue
-
匿名函数
-
-
类
-
继承(仅支持公有单继承)
-
方法和运算符重载
-
构造方法
-
析构方法
-
-
模块管理
语言的详细说明请参考文档 berry_rm_zh_cn.pdf。
Berry 解释器使用 ANSI C99 标准编写,且代码十分精简(目前不到 10000 行)。由于采用了在解释器编译时构造常量对象的技术,解释器程序在启动时可以只占用极少的内存。在适当的配置下,解释器启动时的动态内存占用大约只有 600 字节。使用 Keil MDK 的 ARMCC 编译的解释器核心大约只占用 40KB FLash 空间。