Berry为 32 位单片机设计的脚本语言
Berry是一款一款为32位单片机设计的脚本语言。Berry解释器使用C89标准实现,该语言可以在RAM或ROM很小的设备上运行。
尽管Berry的体积很小,但是它也支持class
以及闭包等功能,使得单片机可以具有较好的二次开发能力。Berry没有将数值和字符串等简单类型设计为对象,这样不仅节省了RAM还可以防止频繁的malloc()
调用。此外该脚本语言还有一些减少内存使用的优化。
Berry非常容易和C语言进行交互,您可以使用C API调用Berry代码,也可以在Berry代码中调用C语言实现的原生函数或者类。
以下是Berry支持的基本类型:
-
nil:空类型
-
数值型:integer、real
-
boolean:布尔型
-
string:字符串类型
-
class:类,用于提供面向对象支持
-
list:可变长度数组
-
map:哈希表
-
range:存储一个整数区间
-
function:所有的函数都是function类型
其中list、map和range是class类型。nil、integer、real和boolean型的数据不需要使用动态内存分配。
运算符和控制语句与C语言相似,具体语法信息可以参考README文件和项目文档。
特性
- 基本类型
- 数值:整数(
int
)和实数(real
) - 布尔值:
true
和false
- 字符串:单引号和双引号
- 列表:连续的内存列表,例如
[1, 2, 3]
- 地图:哈希地图,例如
{ 'a': 1, 2: 3, 'map': {} }
- 范围:包括一个较低和较高的整数值,例如
0..5
- 数值:整数(
- 运算符和表达式
- 赋值运算符:
=
,+=
,-=
,*=
,/=
,%=
,&=
,|=
,^=
,<<=
,>>=
- 关系运算符:
<
,<=
,==
,!=
,>
,>=
- 逻辑运算:
&&
,||
,!
- 算术运算符:
+
,-
,*
,/
,%
- 位运算符:
&
,|
,~
,^
,<<
,>>
- 现场操作员:
.
- 下标运算符:
[]
- 连接字符串运算符:
+
- 条件运算符:
? :
- 括号:
()
- 赋值运算符:
- 控制结构
- 条件语句:
if-else
- 迭代语句:
while
和for
- 跳转语句:
break
和continue
- 条件语句:
- 功能
- 局部变量和块范围
- 退货声明
- 嵌套函数定义
- 基于升值的封闭
- 匿名功能
- Lambda表达式
- 类
- 继承(仅公共单继承)
- 方法和运算符重载
- 构造方法
- 破坏性方法
- 模块管理
- 内置模块几乎不需要RAM
- 扩展模块支持:脚本模块,字节码文件模块和共享库(例如* .so,*。dll)模块
- GC(垃圾收集)
- 标记扫描GC
- 异常处理
- 使用
raise
语句抛出任何异常值 - 多重捕获模式
- 使用
- 字节码文件支持
- 将功能导出到字节码文件
- 加载字节码文件并执行
评论