[發明專利]一種嵌入式瀏覽器引擎動態編譯執行方法有效
| 申請號: | 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.szxzyx.cn/pat/books/201210191993.6/1.html,轉載請聲明來源鉆瓜專利網。





