[发明专利]一种嵌入式浏览器引擎动态编译执行方法有效
申请号: | 201210191993.6 | 申请日: | 2012-06-12 |
公开(公告)号: | CN102736943A | 公开(公告)日: | 2012-10-17 |
发明(设计)人: | 郭文生;桑楠;郭小福;余启洋 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 詹福五 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 该发明属于嵌入式浏览器的JavaScript引擎动态编译及执行方法,包括:组合式缓冲区的建立及其扩展,脚本热点及编译抽象语法树,扫描抽象语法树及字节码、目标码的编译,脚本执行及热点区域的确定、编译。该发明在嵌入式浏览器的JavaScript引擎中采用动态编译方式将扫描热点提前到将抽象语法树转换为字节码的过程中,并充分结合解释执行响应速度快和JIT执行效率高的优点,在解释执行过程中进一步探测循环结构以外的热点。因而具有可有效提高嵌入式浏览器JavaScript引擎动态编译与JavaScript脚本运行的同步性和效率,缩短了动态编译与执行之间的延迟时间、执行Javascript脚本快速,更新网页所显示的信息及时、并有效改善了用户的使用效果等特点。 | ||
搜索关键词: | 一种 嵌入式 浏览器 引擎 动态 编译 执行 方法 | ||
【主权项】:
一种嵌入式浏览器引擎动态编译执行方法,包括:A.组合式缓冲区的建立及其扩展:采用小缓冲区的方式存储目标码和字节码,使用组合式缓冲区的管理机制通过跳转连接的方式将各小缓冲区组合形成一个具有逻辑关系的大缓冲区;在扩展缓冲区时只需在已有的小缓冲区基础上增加一个或多个相应的小缓冲区;B.脚本热点及编译抽象语法树,扫描抽象语法树及字节码、目标码的编译:B1.编译抽象语法树及热点的确定:在引擎按背景技术将JavaScript脚本编译成抽象语法树后,将抽象语法树中的循环结构抽象语法子树作为热点,转步骤B2;B2.扫描抽象语法树:在抽象语法树编译成字节码的过程中、即对抽象语法树的节点依次进行扫描,以确定其为普通节点还是热点,每当扫描完一个节点后即转步骤A3,直至扫描完毕;B3.字节码、目标码的编译:对步骤B2扫描抽象语法树时确定的普通节点编译成字节码或字节码流、而扫描时确定的热点则直接编译成目标码,与此同时在字节码或字节码流与编译成的目标码间插入跳转标记,然后将其结果存放到缓冲区内;C.脚本执行及热点区域的确定、编译:C1.脚本执行及热点区域的确定:对步骤B编译成并存入步骤A中的字节码进行执行区域的初始化标记和执行,执行过程中判断字节码是否是跳转标记,如果不是跳转标记直接解释执行,如果是跳转标记则获取与该跳转标记对应的目标码后、执行,在解释执行过程中对每次执行的字节码段进行区域标记,将执行过程中被反复执行2次以上的区域作为热点区域、转步骤C2,其它的区域作为非热点区域;直至脚本执行完毕;C2.热点区域的编译:首先判断组成热点区域的字节码是否含跳转标记,若步骤C1探测出的是由不含跳转标记的字节码组成的热点区域、则直接将字节码编译成目标码,若步骤C1探测出的是由含跳转标记的字节码形成的混合式热点区域、则将其联合编译成目标码;同时将探测出的各热点区域对应的字节码或含跳转标记的字节码修改为新的跳转标记,转步骤C1。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210191993.6/,转载请声明来源钻瓜专利网。