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