嵌入式脚本语言 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. 2009年3月新浪PHP面试题及答案(一)

    1. echo count(“abc”); 输出什么? 答案:1 2. 用PHP代码写出显示客户端IP与服务器IP的代码. 答案:客户端 getenv(‘REMOTE_ADDR’); 服务器端 get ...

  2. ElasticSearch java API-使用More like this实现基于内容的推荐

    ElasticSearch java API-使用More like this实现基于内容的推荐 基于内容的推荐通常是给定一篇文档信息,然后给用户推荐与该文档相识的文档.Lucene的api中有实现查 ...

  3. NeatUpload 的使用

    1 <httpModules> 2 <add name="UploadHttpModule" type="Brettle.Web.NeatUpload. ...

  4. Mavlink 协议 理解

    来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...

  5. kickstart2019 round_A B. Parcels

    思路: 利用了曼哈顿距离和切比雪夫距离之间的转化. 参考: https://blog.csdn.net/Dylan_Frank/article/details/88985444 https://www ...

  6. 安装mysql-installer-community

    1.在官网上下载mysql-installer-community-5.6.25.0 2.选择MySQL Installer 3.选择Windows (x86, 32-bit), MSI Instal ...

  7. 50道CSS基础面试题(附答案)

    1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin低版本IE盒子模型:宽度 ...

  8. MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析

    MATLAB之数学建模:深圳市生活垃圾处理社会总成本分析 注:MATLAB版本--2016a,作图分析部分见<MATLAB之折线图.柱状图.饼图以及常用绘图技巧> 一.现状模式下的模型 % ...

  9. Maven建立spring-web项目

    参考博客网址: https://blog.csdn.net/caoxuekun/article/details/77336444 1.eclipse集成maven 2.maven创建web项目 3.搭 ...

  10. 富文本编辑器Ueditor的使用

    1.下载:http://ueditor.baidu.com/website/download.html. 2.解压,并放到项目webapp下. 3.jsp页面的配置. 4.配置根路径. 5.页面展示: ...