[发明专利]计算机中源代码到目标代码的转换方法和系统在审
| 申请号: | 201580083897.1 | 申请日: | 2015-10-15 |
| 公开(公告)号: | CN108139892A | 公开(公告)日: | 2018-06-08 |
| 发明(设计)人: | 亚历山大·弗拉基米罗维奇·斯莱萨连科;马克西姆·维克托罗维奇·基柯 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/41;G06F8/51 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 源代码 类型系统 目标代码 评估模式 中间表示 虚拟化 封装 计算机 新对象 新节点 转换 集合 关联 评估 应用 | ||
1.计算机中源代码到目标代码的转换方法(200),其特征在于,所述源代码的属性由源代码类型系统决定,所述源代码类型系统包含应用于所述源代码的构成成分的规则的集合,所述方法包含:
定义(201)类型封装,以将目标代码类型系统的类型导入所述源代码类型系统;
虚拟化(202)所述类型封装以得到虚拟化表示,从而在至少一个评估模式下评估所述虚拟化表示;
具体化(203)所述类型封装的所述虚拟化表示为所述至少一个评估模式中的特定评估模式,从而基于所述特定评估模式提供所述源代码的中间表示;
利用与所述中间表示的新节点类型关联的新对象扩展(204)所述源代码的所述中间表示;以及
基于所述源代码的扩展后的中间表示生成(205)所述目标代码。
2.根据权利要求1所述的方法(200),其特征在于,
所述源代码类型系统为领域专用语言类型系统或通用语言类型系统。
3.根据权利要求1或2所述的方法(200),其特征在于,
所述虚拟化(202)所述类型封装基于多态嵌入技术。
4.根据前述权利要求之一所述的方法(200),其特征在于,
所述至少一个评估模式为标准评估模式或分级评估模式之一。
5.根据权利要求4所述的方法(200),其特征在于,包含
具体化(203)所述类型封装的所述虚拟化表示为所述标准评估模式或所述分级评估模式之一。
6.根据权利要求4或5所述的方法(200),其特征在于,
在所述分级评估模式下对所述虚拟化表示进行的评估产生所述源代码的中间表示。
7.根据权利要求6所述的方法(200),其特征在于,
所述源代码的所述中间表示为基于图形的中间表示。
8.根据前述权利要求之一所述的方法(200),其特征在于,
与所述分级评估模式关联的所述新对象表示所述源代码的所述中间表示的节点的新类型。
9.根据权利要求8所述的方法(200),其特征在于,
所述新对象表示用于调用所述目标代码类型系统的外部类型的方法的新方法调用。
10.根据权利要求9所述的方法(200),其特征在于,
所述表示新方法调用的新对象包含以下参数:
由符号表示的所述源代码的所述中间表示的元素的参考;
所述源代码类型系统的类型中被调用方法的名称;以及
一系列由符号表示的方法变量参数。
11.根据权利要求8至10之一所述的方法(200),其特征在于,
所述新对象表示所述源代码类型系统的所述类型的新实例。
12.根据权利要求11所述的方法(200),其特征在于,
所述新对象包含构建所述类型的所述实例所需要的所述类型和变量参数的元信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580083897.1/1.html,转载请声明来源钻瓜专利网。





