[发明专利]一种跨语言编译方法及设备在审
申请号: | 201910228528.7 | 申请日: | 2019-03-25 |
公开(公告)号: | CN111736838A | 公开(公告)日: | 2020-10-02 |
发明(设计)人: | 蒋奕;陈永健;张超;赵俊民;张雁 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 语言 编译 方法 设备 | ||
1.一种编译方法,其特征在于,所述方法包括:
获取源程序代码,所述源程序代码包括第一语言代码和第二语言代码,所述第一语言代码中包括第一方法,所述第二语言代码中包括第二方法,其中,所述第一语言代码为本地语言,所述第二语言代码为非本地语言;
根据所述源程序代码生成第三语言代码,所述第三语言代码中包含第三方法和第四方法,所述第三方法根据所述第一方法所生成,所述第四方法根据第二方法所生成,所述第三语言代码还包括第五方法,所述第五方法根据所述第一方法和所述第二方法所生成或者根据所述第三方法和所述第四方法所生成,所述第五方法用于所述第三方法通过所述第五方法调用所述第四方法或者所述第四方法通过所述第五方法调用所述第三方法。
2.根据权利要求1所述方法,其特征在于,根据所述源程序代码生成第三语言代码具体包括:
确定所述第一方法或第三方法会出现异常;
生成用于所述第四方法调用所述第三方法的第五方法,所述第五方法包含异常处理功能。
3.根据权利要求1所述方法,其特征在于,根据所述源程序代码生成所述第三语言代码还包括:
确定所述第一方法访问所述第二语言代码中的对象;
在根据所述源程序代码生成第三语言代码时,生成所述第二语言代码中所述对象的对象引用表。
4.根据权利要求1所述方法,其特征在于,所述第二语言代码为Java语言代码,根据所述源程序代码生成第三语言代码时还包括:
确定所述第一方法访问所述第二语言代码中的Java本地接口JNI指针;
在所述第五方法的参数中添加JNI指针。
5.根据权利要求1所述方法,其特征在于,所述第二语言代码为Java语言代码,根据所述源程序代码生成第三语言代码时还包括:
确定所述第一方法是否访问所述第二语言代码中的Java对象或者Java类对象;
在所述第五方法的参数中添加所述Java对象或者所述Java类对象。
6.根据权利要求1-5任意一项所述方法,其特征在于,所述第三语言代码还包括所述第二语言代码中的类的域信息、类的方法信息以及类的继承关系。
7.根据权利要求6所述方法,其特征在于,根据所述源程序代码生成第三语言代码时,生成所述第五方法包括:
根据所述类的继承关系和类的方法信息,确定所述第二方法在所述第二语言代码中的签名,所述签名用于指示所述第二语言代码中的所述第二方法的名称以及所述第二方法所在的类,根据所述签名生成所述第五方法。
8.根据权利要求6所述方法,其特征在于,根据所述源程序代码生成所述第三语言代码还包括:
根据所述类的继承关系和类的域信息,生成第六方法,所述第六方法用于访问所述第二语言代码中的域。
9.根据权利要求1-8中任一所述方法,其特征在于,所述第三方法和所述第四方法中包含有标识,所述标识用于指示所述第三方法根据本地语言生成或者指示所述第四方法根据非本地语言生成。
10.一种编译装置,其特征在于,所述装置包括:
获取模块,用于获取源程序代码,所述源程序代码包括第一语言代码和第二语言代码,所述第一语言代码中包括第一方法,所述第二语言代码中包括第二方法,其中,所述第一语言代码为本地语言,所述第二语言代码为非本地语言;
生成模块,用于根据所述源程序代码生成第三语言代码,所述第三语言代码中包含第三方法和第四方法,所述第三方法根据所述第一方法所生成,所述第四方法根据第二方法所生成,所述第三语言代码还包括第五方法,所述第五方法根据所述第一方法和所述第二方法所生成或者根据所述第三方法和所述第四方法所生成,所述第五方法用于所述第三方法通过所述第五方法调用所述第四方法或者所述第四方法通过所述第五方法调用所述第三方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910228528.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种便于调节气压大小的气压开关
- 下一篇:音频输出方法、移动终端及可穿戴设备