Berry为 32 位单片机设计的脚本语言

联合创作 · 2023-09-27 23:13

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
    • 布尔值:truefalse
    • 字符串:单引号和双引号
    • 列表:连续的内存列表,例如 [1, 2, 3]
    • 地图:哈希地图,例如 { 'a': 1, 2: 3, 'map': {} }
    • 范围:包括一个较低和较高的整数值,例如 0..5
  • 运算符和表达式
    • 赋值运算符:=+=-=*=/=%=&=|=^=<<=>>=
    • 关系运算符:<<===!=>>=
    • 逻辑运算:&&||!
    • 算术运算符:+-*/%
    • 位运算符:&|~^<<>>
    • 现场操作员: .
    • 下标运算符: []
    • 连接字符串运算符: +
    • 条件运算符: ? :
    • 括号: ()
  • 控制结构
    • 条件语句: if-else
    • 迭代语句:whilefor
    • 跳转语句:breakcontinue
  • 功能
    • 局部变量和块范围
    • 退货声明
    • 嵌套函数定义
    • 基于升值的封闭
    • 匿名功能
    • Lambda表达式
    • 继承(仅公共单继承)
    • 方法和运算符重载
    • 构造方法
    • 破坏性方法
  • 模块管理
    • 内置模块几乎不需要RAM
    • 扩展模块支持:脚本模块,字节码文件模块和共享库(例如* .so,*。dll)模块
  • GC(垃圾收集)
    • 标记扫描GC
  • 异常处理
    • 使用raise语句抛出任何异常值
    • 多重捕获模式
  • 字节码文件支持
    • 将功能导出到字节码文件
    • 加载字节码文件并执行
浏览 4
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报