手机平台JavaScript语言解释器设计与实现
作者单位:中南大学
学位级别:硕士
导师姓名:金瓯
授予年度:2009年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:JavaScript解释器 手机中间件 属性文法 面向对象
摘 要:低端手机占据了整个手机市场百分之五十的份额,但是由于低端手机硬件处理能力低,可用内存少等原因,目前低端手机上的手机应用非常匮乏,并且至今还没有一款运行在低端手机上的JavaScript解释器。随着以手机Web 2.0为代表的手机应用的迅速发展,设计一款基于低端手机上的JavaScript解释器具有较好的实用意义。 基于一种封闭手机系统之上的中间件平台(VRE中间件平台)设计了一款JavaScript解释器系统,该中间件平台的内存管理算法的缺点是小内存块的有效利用率比较低,论文针对低端手机硬件限制和该中间件的内存特点,详细介绍了这款JavaScript解释器的关键设计技术与实现方法。 该解释器系统分为解释前端和解释后端,中间字节码作为两端的桥梁,系统采取语法分析驱动词法分析和语义动作的策略,避免了小内存块的大规模申请,提高了内存利用率。 在词法分析部分,设计提出了一种基于长度分组的二级关键字存储表结构,解决了一些成熟的解释器中关键字与用户自定义标示符的识别速度慢的问题。在语法分析部分,首先构造了JavaScript语言可以产生抽象语法树的属性文法,然后设计了用于语法分析的两个语法栈和符号表,最后参照语法制导翻译思想,设计了语法语义分析的主控制程序。针对开源项目WebKit中基于语法树翻译时存在的效率低问题,借鉴Java解释技术,设计了基于中间字节码的解释模式,并且提出了将JavaScript程序段分段独立解释的策略,有效的降低了抽象语法树的节点数目和树高,通过对某些控制语句和循环语句的抽象语法树改造,比较容易地解决了这些语句的字节码生成问题。在解释后端部分,设计了后端核心数据结构和后端控制程序,实现了对自定义字节码的解释执行。针对一些解释器中类属性修改时效率低的问题,设计了独立的类存储结构并与对象关联,有效地解决了这个问题,实现了对象单继承的翻译。此外,结合手机平台的硬件特点,基于片内存储空间的使用,设计了JavaScript解释器解释后端的优化方法,效果明显。本款解释器同样可以运行于中高端手机平台上。