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语句抛出任何异常值

    • 多重捕获模式


  • 字节码文件支持

    • 将功能导出到字节码文件

    • 加载字节码文件并执行


浏览 23
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报