野人社区>工程案例>正文

轻量级C语言脚本解释引擎MiniC

MiniC是一款比较完善的强大的C语言解释器,本身也是通过标准C语言实现,可以嵌入到用户应用程序,包括嵌入式系统中。支持对比较复杂的C代码的解释执行。完美支持各种标准C语言语法,如if-else结构语句, ?:结构求值语句,for循环,while循环,do...while循环等 支持各种数据类型包括: char,short,int,string,float 支持多维数组及指针 支持自定义函数以及系统函数 支持局部变量以及全局变量,允许在变量定义时直接初始化 支持局部变量层次化作用域;允许定义系统常量;支持系统内部定义数据类型,但不支持用户在脚本中自定义数据类型;支持行注释符及段注释符。本解释器不但支持标准C语法,也支持在在标准C语法基础上扩展出一些灵活的语法特色。


MiniC解释器本身采用标准C语言实现,可以在各种C语言环境下编译执行。主要特色如下:
1. 完美支持各种标准C语言语法,如if-else结构语句, ?:结构求值语句,for循环,while循环,do...while循环等。
2. 支持各种数据类型包括: char,short,int,string,float。
3. 支持多维数组及指针。
4. 支持自定义函数以及系统函数。
5. 支持局部变量以及全局变量,允许在变量定义时直接初始化。
6. 支持局部变量层次化作用域
7. 允许定义系统常量
8  支持系统内部定义数据类型,但不支持用户在脚本中自定义数据类型.
9  支持行注释符及段注释符
10. 支持通过include加载其它源文件。
11. 支持各种条件运算符 ||  &&
12. 支持各种逻辑运算及位操作符: + - * / % ! ~ ^ > < << >>,并按照C语言标准来规范运算优先级。
13. 支持单目运算!(not)及~(位取反)的嵌套。
14. 支持 +=  -=  *=  /=  %=  &=  |=  >>=  <<= 的赋值形式。
15. 支持++,--操作,包括 i++ , i-- , ++i , --i
16. 支持16进制立即数,例如 支持代码 int a=0x13;
17. 增加字符串自动解析,
    例如:
     int cmux=5;
     char testr[80]="hss_{$cmux}_ok"; //其中{$cmux}表示载入变量cmux值.  
     printf("%s\n",testr); //将打印出  hss_5_ok
18 支持动态长度的字符串数据类型string.
   例如 string s="hello"; //表示定义一个字符串变量s,并增初值为hello,string类型变量的控件大小是自动的,不需要指定。
19. 支持的系统函数包括:
    printf,sprintf
    fopen, fclose, fprintf,fscanf
    getch, putch
    strcat,strcmp,stricmp
    strcpy,strncpy
    memcpy,memcmp
    atoi, inttostr, strtoint
    log2, pow
    exit, etc.
    需要支持其他系统库函数,可以自行对解释器源码进行简单的扩展定制。


MiniC作为一款体积小、功能完善、使用灵活的C语言解释器,已经成功运用于多个国家级项目:

(1) 核心电子器件、高端通用芯片及基础软件产品国家科技重大专项课题,高端通用芯片方向“嵌入式CPU SRAM 编译器设计关键技术研究”(项目编号:2010ZX01030-001-001-004)。
(2)  核心电子器件、高端通用芯片及基础软件产品国家科技重大专项课题,高端通用芯片方向“嵌入式存储器IP 核开发及应用”(项目编号:2011ZX01034-001-002)。
(3)  国家科技重大专项课题“低功耗高密度SRAM 单元库及编译器设计”(项目编号:2011ZX01034-001-002-003)。

以上项目中,编译引擎便是采用的MiniC解释器。

广告
广告位
了解详情
广告
广告位
了解详情
©版权所有: 南京云想物联网科技有限公司   苏ICP备20013807号-1     联系我们