[發明專利]程序代碼的運行方法和運行裝置以及編譯方法和編譯裝置有效
| 申請號: | 201811194861.2 | 申請日: | 2018-10-15 |
| 公開(公告)號: | CN111045657B | 公開(公告)日: | 2021-08-13 |
| 發明(設計)人: | 孫淵磊;蔣奕;陳永健;周正興 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30;G06F8/41 |
| 代理公司: | 北京龍雙利達知識產權代理有限公司 11329 | 代理人: | 陳洪艷;王君 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序代碼 運行 方法 裝置 以及 編譯 | ||
本申請提供一種程序代碼的編譯方法和編譯裝置以及運行方法和運行裝置。該編譯方法和編譯裝置在編譯程序代碼階段,為被聲明為原生方法的方法生成注冊表項,該注冊表項中記錄用于確定該方法的符號名的信息和空地址。該運行方法和運行裝置在運行程序代碼階段,根據被聲明為原生方法的方法的符號名和注冊表項中記錄的用于確定符號名的信息,找到該方法對應的注冊表項,并在該對應的注冊表項中記錄該方法對應的原生方法的地址,從而完成該方法與其對應的原生方法的綁定,以便于后續過程中能夠根據該綁定關系調用該方法對應的原生方法。
技術領域
本申請涉及程序語言領域,并且更具體地,涉及程序代碼的運行方法和運行裝置以及編譯方法和編譯裝置。
背景技術
Java程序中,可以調用通過C或C++等原生語言實現的原生方法(native method),且,這些原生方法符合Java原生接口(Java native interface,JNI)規范。
在Java程序調用原生語言實現的原生方法之前,需要先將通過原生語言實現的原生方法與Java程序中聲明的原生方法綁定。Java程序中聲明的原生方法是指在Java程序中聲明該方法是通過原生方法實現的,在Java程序中不需要實現。
如何實現通過原生語言實現的原生方法與Java程序中聲明的原生方法之間的綁定,是一個亟待解決的技術問題。
發明內容
本申請提供一種程序代碼的編譯方法和編譯裝置以及運行方法和運行裝置,能夠實現通過原生語言實現的原生方法與Java程序中聲明的原生方法之間的綁定,以便于Java程序能夠調用原生方法。
第一方面、本申請提供了一種程序代碼的運行方法。該運行方法包括:確定被聲明為原生方法的第一方法的符號名和該第一方法對應的原生方法的地址,所述符號名用于標識所述第一方法;根據所述第一方法的符號名確定與所述第一方法對應的第一注冊表項,所述第一注冊表項包括第一字段,所述第一字段中記錄的信息用于確定所述第一方法的符號名;在所述第一注冊表項包括的第二字段中記錄所述第一方法對應的原生方法的地址。
該運行方法中,將第一方法對應的原生方法的地址記錄在已有的注冊表項中,并且該地址與第一方法具有對應關系,從而可以使得后續調用第一方法對應的原生方法時,可以直接根據該注冊表項找到第一方法對應的原生方法的地址,即可以調用該原生方法。
在一些可能的實現方式中,所述第一注冊表項中的第一字段中記錄的是所述第一方法的符號名。
在一些可能的實現方式中,所述第一注冊表項中的第一字段中記錄所述第一方法的符號名相對于所述第一注冊表項的地址偏移量,所述第一方法的符號名記錄在字符串表中,所述字符串表中記錄一個或多個被聲明為原生方法的方法的符號名。
在一些可能的實現方式中,根據所述第一方法的符號名確定與所述第一方法對應的第一注冊表項,包括:計算所述第一方法的符號名的哈希值;將所述哈希值作為第一索引,確定哈希表中與該第一索引對應的第一哈希表項,所述哈希表中的哈希表項用于記錄所述哈希表項對應的注冊表項在原生注冊表中的索引,所述原生注冊表中包括一個或多個注冊表項;將所述原生注冊表中與所述第一哈希表項中記錄的第二索引對應的注冊表項確定為所述第一注冊表項。
在一些可能的實現方式中,所述通信方法還包括:確定所述第一方法的調用樁,所述調用樁中包括第一標簽,第一標簽與所述第一方法對應的第一注冊表項具有對應關系;根據所述第一標簽和所述對應關系,確定所述第一方法對應的所述第一注冊表項;根據所述第一注冊表項包括的第二字段中記錄的地址,調用所述第一方法對應的原生方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811194861.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種金屬噴淋清洗劑
- 下一篇:一種直驅風機虛擬同步發電系統





