Berry為 32 位單片機(jī)設(shè)計的腳本語言
Berry是一款一款為32位單片機(jī)設(shè)計的腳本語言。Berry解釋器使用C89標(biāo)準(zhǔn)實現(xiàn),該語言可以在RAM或ROM很小的設(shè)備上運(yùn)行。
盡管Berry的體積很小,但是它也支持class以及閉包等功能,使得單片機(jī)可以具有較好的二次開發(fā)能力。Berry沒有將數(shù)值和字符串等簡單類型設(shè)計為對象,這樣不僅節(jié)省了RAM還可以防止頻繁的malloc()調(diào)用。此外該腳本語言還有一些減少內(nèi)存使用的優(yōu)化。
Berry非常容易和C語言進(jìn)行交互,您可以使用C API調(diào)用Berry代碼,也可以在Berry代碼中調(diào)用C語言實現(xiàn)的原生函數(shù)或者類。
以下是Berry支持的基本類型:
-
nil:空類型
-
數(shù)值型:integer、real
-
boolean:布爾型
-
string:字符串類型
-
class:類,用于提供面向?qū)ο笾С?/p>
-
list:可變長度數(shù)組
-
map:哈希表
-
range:存儲一個整數(shù)區(qū)間
-
function:所有的函數(shù)都是function類型
其中l(wèi)ist、map和range是class類型。nil、integer、real和boolean型的數(shù)據(jù)不需要使用動態(tài)內(nèi)存分配。
運(yùn)算符和控制語句與C語言相似,具體語法信息可以參考README文件和項目文檔。
特性
- 基本類型
- 數(shù)值:整數(shù)(
int)和實數(shù)(real) - 布爾值:
true和false - 字符串:單引號和雙引號
- 列表:連續(xù)的內(nèi)存列表,例如
[1, 2, 3] - 地圖:哈希地圖,例如
{ 'a': 1, 2: 3, 'map': {} } - 范圍:包括一個較低和較高的整數(shù)值,例如
0..5
- 數(shù)值:整數(shù)(
- 運(yùn)算符和表達(dá)式
- 賦值運(yùn)算符:
=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>= - 關(guān)系運(yùn)算符:
<,<=,==,!=,>,>= - 邏輯運(yùn)算:
&&,||,! - 算術(shù)運(yùn)算符:
+,-,*,/,% - 位運(yùn)算符:
&,|,~,^,<<,>> - 現(xiàn)場操作員:
. - 下標(biāo)運(yùn)算符:
[] - 連接字符串運(yùn)算符:
+ - 條件運(yùn)算符:
? : - 括號:
()
- 賦值運(yùn)算符:
- 控制結(jié)構(gòu)
- 條件語句:
if-else - 迭代語句:
while和for - 跳轉(zhuǎn)語句:
break和continue
- 條件語句:
- 功能
- 局部變量和塊范圍
- 退貨聲明
- 嵌套函數(shù)定義
- 基于升值的封閉
- 匿名功能
- Lambda表達(dá)式
- 類
- 繼承(僅公共單繼承)
- 方法和運(yùn)算符重載
- 構(gòu)造方法
- 破壞性方法
- 模塊管理
- 內(nèi)置模塊幾乎不需要RAM
- 擴(kuò)展模塊支持:腳本模塊,字節(jié)碼文件模塊和共享庫(例如* .so,*。dll)模塊
- GC(垃圾收集)
- 標(biāo)記掃描GC
- 異常處理
- 使用
raise語句拋出任何異常值 - 多重捕獲模式
- 使用
- 字節(jié)碼文件支持
- 將功能導(dǎo)出到字節(jié)碼文件
- 加載字節(jié)碼文件并執(zhí)行
評論
圖片
表情
