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

MIT
C/C++
跨平台
2018-12-07
过招铁是傻

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文件项目文档

的码云指数为
超过 的项目
加载中

评论(16)

久永
久永

引用来自“过招铁是傻”的评论

这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。

引用来自“久永”的评论

NB,强两年有个东西本来想要103用,可惜没有对应好的软件生态,只好作罢。103现在貌似很便宜吧?

引用来自“过招铁是傻”的评论

103RCT6淘宝上不到9块钱一片,跑我这个脚本绰绰有余,实际上只要是STM32F103CBT6就能跑起来了。

引用来自“久永”的评论

要是能搞个开发环境或者 VS 的语言支持插件,那推广起来就NB了!

引用来自“过招铁是傻”的评论

VS Code的插件是有的,在tools/pulgins/vscode文件夹下面,开发环境的话就比较麻烦了,我现在还没做KEIL的移植,打算等语言的基础功能稳定了再重点搞单片机平台的移植,目前再单片机上跑也只是简单的验证一下。
有个插件就可以了,从头弄开发工具,消耗精力太多了,没有必要。 要是专门做语言,可以实现下语言服务器。
过招铁是傻 软件作者

引用来自“过招铁是傻”的评论

这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。

引用来自“久永”的评论

NB,强两年有个东西本来想要103用,可惜没有对应好的软件生态,只好作罢。103现在貌似很便宜吧?

引用来自“过招铁是傻”的评论

103RCT6淘宝上不到9块钱一片,跑我这个脚本绰绰有余,实际上只要是STM32F103CBT6就能跑起来了。

引用来自“久永”的评论

要是能搞个开发环境或者 VS 的语言支持插件,那推广起来就NB了!
VS Code的插件是有的,在tools/pulgins/vscode文件夹下面,开发环境的话就比较麻烦了,我现在还没做KEIL的移植,打算等语言的基础功能稳定了再重点搞单片机平台的移植,目前再单片机上跑也只是简单的验证一下。
久永
久永

引用来自“过招铁是傻”的评论

这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。

引用来自“久永”的评论

NB,强两年有个东西本来想要103用,可惜没有对应好的软件生态,只好作罢。103现在貌似很便宜吧?

引用来自“过招铁是傻”的评论

103RCT6淘宝上不到9块钱一片,跑我这个脚本绰绰有余,实际上只要是STM32F103CBT6就能跑起来了。
要是能搞个开发环境或者 VS 的语言支持插件,那推广起来就NB了!
过招铁是傻 软件作者

引用来自“过招铁是傻”的评论

这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。

引用来自“久永”的评论

NB,强两年有个东西本来想要103用,可惜没有对应好的软件生态,只好作罢。103现在貌似很便宜吧?
103RCT6淘宝上不到9块钱一片,跑我这个脚本绰绰有余,实际上只要是STM32F103CBT6就能跑起来了。
久永
久永

引用来自“过招铁是傻”的评论

这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。
NB,强两年有个东西本来想要103用,可惜没有对应好的软件生态,只好作罢。103现在貌似很便宜吧?
过招铁是傻 软件作者
这个脚本的设计目标之一是要比Lua小,目前它的启动RAM堆占用大约2.5KB(如果要跑脚本的话建议8KB以上),ROM需要40多KB。这里有一个STM32F103RCT6的移植:https://github.com/gztss/berry_mcu。以后我想把一些hash表做到ROM里头去,这样可以进一步减少RAM使用。性能其实和Lua差不多。
Anjelo
Anjelo
用microPython的路过
SamXIAO
SamXIAO

引用来自“简单生活”的评论

和lua对比 内存占用 代码尺寸,性能都有什么优势?
+1
LinkerLin
LinkerLin
直接用Lua不就好了么
行者无疆在杭州
行者无疆在杭州
编译出来运行?

暂无资讯

暂无问答

Banana pi 系列开发板金属外壳面世

Banana pi 系列开发板金属外壳面世 BPI-M2 Berry 金属外壳 ![输入图片说明](https://static.oschina.net/uploads/img/201710/30181716_kbl4.jpg "BPI-M2 Berry 金属外壳") ![输入图片说明](h...

2017/10/30 18:21
40
0
Santa claus broadcast Canada goose coats being ...

Santa claus broadcast Canada goose coats being a Xmas gift This The holiday season arriving, a lot of lovemaking multitude decked out since Santa Claus before hand to every one ...

2012/12/23 12:20
12
0
EnglishAtWork

Anna's checking up on some orders today. As a result of some embarrassing mistakes in deliveries, Tip Top Trading's big boss in America has ordered a re-check of every order thi...

2018/08/26 23:55
16
0
《Fun Fun Function》第一集--高阶函数

视频地址:https://www.youtube.com/watch?v=BMUiFMZr7vk Hello,in this video series i will teach you how to do function programming in javascript.and this is the first one,i will t...

2016/01/06 01:51
7
0
两位开发者一周内没有写一行代码开发出一个应用

这是来自itproportal的报道,最近一个英国保险公司LV=建立了一个经纪人工作流程的应用,在三个系统上使用三个处理过程实现自动跟踪和报告系统,根据这种复杂性,你猜测这个项目也许需要一个大...

2015/05/21 08:15
11
0
when the draft wraps up wit

when the draft wraps up wit

2015/04/28 11:10
7
0
使用dom4j创建XML文档

用dom4j创建一个简单的xml文档,要创建的xml文档如下所示: hamburger $1.95 A sandwich made with a patty of ground meat usually in a roll or bun 260 首先要导入dom4j组件中的两个包,一...

2013/08/27 17:35
841
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部