嵌入式脚本语言 Berry github网址 :https://github.com/Skiars/berry

Berry 是一款面向小型嵌入式系统的脚本语言,目前发布了 0.1.0 版本。相比于其他脚本语言,Berry 更加精简,因此更适合在单片机上运行。该版本的语言主要特性为:

  • 基本类型

    • 数值类型:整数(int)和浮点数(real

    • 布尔类型:true 和 false

    • 字符串:使用单引号或者双引号包围的文本

    • List:连续存储列表,例如 [1, 2, 3]

    • Map:Hash 表,例如 { 'a': 1, 2: 3, 'map': {} }

    • Range:包含一个下限值和上限值,如 0..5

  • 运算符和表达式

    • 赋值运算符:=+=-=*=/=%=&=|=^=<<=>>=

    • 关系运算符:<<===!=>>=

    • 逻辑运算符:&&||!

    • 算术运算符:+-*/%

    • 位运算符:&|~^<<>>

    • 域运算符:.

    • 下标运算符:[]

    • 字符串拼接运算符:+

    • 括号:()

  • 控制结构

    • 条件语句:if-else

    • 迭代语句:while 和 for

    • 跳转语句:break 和 continue

  • 函数

    • 局部变量和块级作用域

    • 返回语句

    • 嵌套函数定义

    • 闭包和 Upvalue

    • 匿名函数

    • 继承(仅支持公有单继承)

    • 方法和运算符重载

    • 构造方法

    • 析构方法

  • 模块管理

语言的详细说明请参考文档 berry_rm_zh_cn.pdf

Berry 解释器使用 ANSI C99 标准编写,且代码十分精简(目前不到 10000 行)。由于采用了在解释器编译时构造常量对象的技术,解释器程序在启动时可以只占用极少的内存。在适当的配置下,解释器启动时的动态内存占用大约只有 600 字节。使用 Keil MDK 的 ARMCC 编译的解释器核心大约只占用 40KB FLash 空间。

适合学习C语言开源项目——嵌入式脚本语言 Berry的更多相关文章

  1. 适合学习的QT开源项目-SerialTool

    https://github.com/Skiars/SerialTool A cross platform Serial-Port/TCP/UDP debugging tool. SerialTool ...

  2. Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目

    Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...

  3. 值得学习的C语言开源项目

    值得学习的C语言开源项目   - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工 ...

  4. 【C/C++开发】值得学习的C语言开源项目

    值得学习的C语言开源项目 - 1. Webbench Webbench是一个在Linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...

  5. 值得学习的C语言开源项目和库

    收集一些C/C++相关的源码,如有更高效的库,请提醒我 补充上去 C/C++相关交流Q群 1414577 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具. ...

  6. 嵌入式 十个最值得阅读学习的C开源项目代码

    开源世界有许多优秀的开源项目,我选取其中十个最优秀的.最轻量级的C语言的项目,希望可以为C语言开发人员提供参考. 十个最值得阅读学习的C开源项目代码 1. Webbench 2. Tinyhttpd ...

  7. 【伯乐在线】最值得阅读学习的 10 个 C 语言开源项目代码

    原文出处: 平凡之路的博客   欢迎分享原创到伯乐头条 伯乐在线注:『阅读优秀代码是提高开发人员修为的一种捷径』http://t.cn/S4RGEz .之前@伯乐头条 曾发过一条微博:『C 语言进阶有 ...

  8. C语言开源项目

    值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的 ...

  9. C/c++语言开源项目总结

    值得学习的C语言开源项目 -1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性 ...

随机推荐

  1. 如何让nginx支持ThinkPHP框架(重点参考)

    公司有一款即将上线的应用服务端是基于ThinkPHP写的,本地测试无异常,上传到外网服务器后无法连接.这可把我和我的小伙伴们吓死了,怎么回事儿,本地测试都是对的呀! 我和我的小伙伴们开始找原因,换了一 ...

  2. <llinux下kvm虚拟化>

    原理就是本来可能要10台物理机完成的事现在只要5台,分别在每台物理机上虚拟一台,这5太虚拟机共享一个stronge,比如有一台物理机down掉后或是要做维护,我们可以把它上面的虚拟机牵走,从而减少损失 ...

  3. onclientclick与onclick的问题.

    <script language="javascript" type="text/javascript"> document.getElementB ...

  4. POS开发问题 - 跳转页面更新,返回还原旧数据

    问题描述:由于需求的需要,路由需要加上缓存 <keep-alive> ,还要实现跳转就初始化,返回就还原的需求.意思就是:页面 A 跳转到页面 B ,页面 B 要初始化数据,但是 页面 B ...

  5. Winform 读取 指定\另一个\其他\任意 配置文件

    ExeConfigurationFileMap map = new ExeConfigurationFileMap();            map.ExeConfigFilename = @&qu ...

  6. ajax请求总是返回error的问题

    多半是因为返回值格式的问题,在后台返回的应与前台设定的值一直,不然就会进入error,会报404服务器错误,极有可能是后台返回的数据类型不对 public void exitSystem( HttpS ...

  7. django ORM 简单示例简绍

    简单 models 操作 class Host(models.Model): nid = models.AutoField(primary_key=True) #Nid为主键 hostname = m ...

  8. mstsc远程桌面全频或自定义窗口

    近期发现自己的mstsc突然窗口变小,总是要繁琐的拖来拖去,现终于解决了,拿来分享一二! 参数一:mstsc /f   以全屏模式显示(操作一次,后面无需在设置,具体何原因要问微软了,可能是机器的分辨 ...

  9. jmeter之吞吐量、吞吐率、TPS、带宽及压力测试和负载测试及其区别

    一般使用单位时间内服务器处理的请求数来描述其并发处理能力.称之为吞吐率(Throughput),单位是 “req/s”.吞吐率特指Web服务器单位时间内处理的请求数另一种描述,吞吐率是,单位时间内网络 ...

  10. CSS变量(CSS variable)

    使用 CSS 变量编写你的样式代码 基本使用: 1. --variable: <declaration-value> 2. <css-attribute>: var(--var ...