lua2.2与lua2.1的对比

 

文法解析方面:

1、在分析函数的时候我们需要将已经分析的指令保存起来,lua2.2提供了函数savemain和change2main来

保存和恢复(其实我觉得change2main如果取名为recovermain会更合适)。

 

2、添加非终结符globalstat:

globalstat -> stat sc | setdebug

 

3、取消非终结符method,添加funcname:

funcname -> var | varexp : name

 

4、表达式(expr)分析时$$的含义:

在lua2.1,分析非functioncall子产生式的时候,$$=1表示不需要在生成指令尾部添加字节(值为1),

$$=0表示需要添加,用来完成CALLFUNC np nr中的nr。但是在lua2.2中恰恰相反,当$$=0表示不需要添加,

当$$=off的时候,表示在当前指令字节串的第off个字节的位置1来实现nr。(因为在functioncall分析结束之后$$=pc)。

 

5、表的域:

表相关的产生式就添加了一个非总结符semicolonpart

产生式:

fieldlist -> lfieldlist semicolonpart 

| ffieldlist1 lastcomma

semicolonpart -> null | ; ffiledlist

lastcomma -> null | ;

 

ffieldlist -> null | ffieldlist1 , lastcomma

ffieldlist1 -> ffield | ffieldlist1, ffield

ffield -> name = expr1

 

lfieldlist -> lfieldlist1 lastcomma

lfieldlist1 -> expr1 | lfieldlist , expr1 

 

对比下来我们发现这部分代码变得更加友善,可读性相对2.1好了一点。

 


 

垃圾回收功能的修改:

1)在文法分析我们其实还忽略了一点那就是lua2.2中添加了“函数链表”,每个函数声明之后还后伴随一条PUSHFUNCTION的

指令产生,这个指令可在执行脚本的时候将这个函数注册到函数链表中。lua2.2花了这么多力气来做这些工作干嘛呢,主要是

为了在垃圾回收的过程中能对不再使用的函数进行回收。

2)lua2.2中使用的垃圾回收策略依然是“标记-清理”。

 

Lua开发包是Script.NET脚本语言开发平台的Lua插件,必须先安装Script.NET平台V2.1.1版本,然后再安装此开发包。 Script.NET平台下载地址:http://download.csdn.net/source/1034307 http://www.blueantstudio.net/scriptnet/download/download.htm Script.NET是蓝蚂蚁工作室开发的一套用于Tcl/Python/Ruby/Lua/NSIS 等脚本语言开发的集成开发环境,刚刚发布的2.1.1版本新增了Ruby脚本的支持,可以支持Ruby脚本的开发、调试、生成可执行文件、控制台等功能,可以支持wxRuby、RubyTk等界面库,目前还不支持Rails的调试,后续版本会不断完善。 下载地址和详细介绍请请参考蓝蚂蚁工作室的主页: http://www.blueantstudio.net Script.NET主要功能特性如下: 1、编辑、调试、运行tcl、python、lua、ruby脚本2脚本的编译/加密和生成可执行文件(每种脚本语言支持的程度不同); 3、效率分析等辅助功能(目前只有tcl脚本支持了此功能); 4、关键字帮助,通过F1键或鼠标移动到关键字上,获取详细的帮助信息; 5、收集了较多的脚本扩展包、帮助文档和演示程序,目前tcl的扩展包收集较多,其他脚本也正在收集完善,除了常用的tk、wx、pmw,还有图象、多媒体、界面库等很多各种各样的扩展包,以后我们打算通过在线更新的方式使用户可以更方便的获取到各种扩展包; 6、附带了ftp、代码统计、正则表达式等一些扩展工具; 7、采用灵活的可扩展架构,整个系统可以灵活的扩展各种解释器、界面组件、工具、工程、界面风格等; 8、支持控制台功能(目前支持tcl/python/lua/ruby控制台、telnet控制台、串口控制台可用,其他脚本控制台正在开发); 9、Script.NET作为一个通用平台对外提供了很多接口,可以通过脚本等方式调用平台的各种功能,其中的tcl语言支持很多平台扩展命令,可以通过tcl操纵平台的各种功能,对平台进行扩展; 10、封装的TclFace页面扩展包,可以通过面向对象的tcl脚本生成各种平台的页面功能,此扩展包除了可以用于本地应用程序生成页面之外,还可以运行于AOLServer WEB服务器,作为一种类似于JSF的服务器端脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值