Berry

为 32 位单片机设计的脚本语言
授权协议 MIT
开发语言 C/C++
所属分类 程序开发、 脚本编程语言
软件类型 开源软件
地区 国产
投 递 者 麻阳
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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语句抛出任何异常值
    • 多重捕获模式
  • 字节码文件支持
    • 将功能导出到字节码文件
    • 加载字节码文件并执行
  • 前言 yarn2发布在即,相对于yarn1(1.21.1),这可以说是一个完全不同的软件,但是它从根本上改变了npm包管理方式,当生态成熟之时,可以说是前端开发的一大利器。 升级 npm install -g yarn@berry 目前还只能通过npm安装。注意安装之后新的cli可能会让你很不舒服,你无法通过global查看全局安装的yarn包,你甚至需要执行: yarn run 来实现:

  • 题目描述 Bessie and her little sister Elsie are picking berries in Farmer John’s berry patch. Farmer John’s patch has exactly N berry trees (1≤N≤1000); tree i contains exactly Bi berries (1≤Bi≤1000). Bess

  • 作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 视频 香蕉派BPI-M2 Berry 全志V40 Mali400 MP2 GPU使用 香蕉派 Wiki Main Page 开发板资料下载 快速上手 香蕉派 BPI-M2 Ultra / BPI-M2 Berry 从主页找到R40

  • 题目描述 Bessie 和她的妹妹 Elsie 正在 Farmer John 的浆果园里采浆果。Farmer John 的浆果园里有 N 棵浆果树(1≤N≤1000);树 i 上有 Bi 个浆果(1≤Bi≤1000)。Bessie 有 K 个篮子(1≤K≤1000,K 为偶数)。每个篮子里可以装同一棵树上采下的任意多个浆果,但是不能装来自于不同的树上的浆果,因为它们的口味可能不同。篮子里也可以不装

  • Hepa Finance和BSC上预言机项目Berry Data达成合作,并将与Berry Oracle集成。除了Oracle 集成,Berry Data和Hepa Finance还将在NFT上进行合作。 文章链接:https://www.tuoluocaijing.cn/kuaixun/detail-179331.html 更多资讯:https://www.tuoluocaijing.cn

  • 2416. Berry Picking 题目描述 Bessie 和她的妹妹 Elsie 正在 Farmer John 的浆果园里采浆果。Farmer John 的浆果园里有 N 棵浆果树(1≤N≤1000);树 i 上有 Bi 个浆果(1≤Bi≤1000)。Bessie 有 K 个篮子(1≤K≤1000,K 为偶数)。每个篮子里可以装同一棵树上采下的任意多个浆果,但是不能装来自于不同的树上的浆果,

  • C. Berry Jam Karlsson has recently discovered a huge stock of berry jam jars in the basement of the house. More specifically, there were 2n jars of strawberry and blueberry jam. All the 2n jars are ar

  • Berry Picking(思维+模拟) 题目描述 Bessie and her little sister Elsie are picking berries in Farmer John’s berry patch. Farmer John’s patch has exactly N berry trees (1≤N≤1000); tree i contains exactly Bi berr

  • 思路 \qquad 由于这题每棵树上的果子的数据较小,我们可以考虑贝茜的妹妹所拿的框中都是 w w w个苹果,那么只要一一枚举 w w w就再求贝茜在这种情况下可以拿到的最多的苹果然后取最大就好了。 \qquad 详情见代码。 代码 #include<bits/stdc++.h>//万能头 #define ll long long using namespace std; int n,k,a[5

 相关资料
  • 我有个奇怪的MSI!!!

  • Windows 环境下32位汇编语言是一种全新的编程语言。它使用与 C++ 语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从 Hello World 这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。

  • 问题内容: 我想知道x86和x64中的64位长吗? 问题答案: 是。Java 在任何JVM上都是64位,无一例外。所有Java原语类型都是完全可移植的,并且在所有实现中都具有固定的大小。

  • 为了使用SharePoint对象模型,我在安装在32位计算机和32位操作系统上的Windows服务中使用SharePoint 64位 dll。 64位dll可能在32位计算机上工作吗? 在什么情况下我们会面临“64位dll在32位机器上无法工作”的问题? 如果我想在64位和32位计算机上安装相同的解决方案,该怎么办?我不想每次都更改目标平台。 更新: 经过研发,我发现“32位解决方案可以安装在64

  • 问题内容: 因此,标题中的问题是,我需要在32位Windows XP的系统上的Tomcat中运行我的服务器应用程序,我正在Eclipse的64位Windows 7上工作和编译。如何将其编译为32位,我需要做什么?我假设在64位计算机上编译它时,它不能在32位Windows上运行? 问题答案: Java不会构建32位或64位应用程序-字节码可在不同的位体系结构之间移植。 唯一的例外是您可能在代码中使

  • 我尝试了Eclipse-Clean的建议,然后清理了工作区并重新加载了最新的eclipse Mars eclipse创建了一个新的工作区,但得到了与我使用旧工作区相同的错误,当我运行64/32位windows系统时一切都很好。重新构建的windows计算机只有32位现在当我启动Eclipse时,我的日志文件将得到以下内容: