[发明专利]计算机中源代码到目标代码的转换方法和系统在审
| 申请号: | 201580083897.1 | 申请日: | 2015-10-15 |
| 公开(公告)号: | CN108139892A | 公开(公告)日: | 2018-06-08 |
| 发明(设计)人: | 亚历山大·弗拉基米罗维奇·斯莱萨连科;马克西姆·维克托罗维奇·基柯 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F8/36 | 分类号: | G06F8/36;G06F8/41;G06F8/51 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 源代码 类型系统 目标代码 评估模式 中间表示 虚拟化 封装 计算机 新对象 新节点 转换 集合 关联 评估 应用 | ||
本发明涉及计算机中源代码到目标代码的转换方法(200)。所述源代码的属性由源代码类型系统决定,所述源代码类型系统包含应用于所述源代码的构成成分的规则的集合,所述方法包含:定义(201)类型封装,以将目标代码类型系统的类型导入所述源代码类型系统;虚拟化(202)所述类型封装以得到虚拟化表示,从而在至少一个评估模式下评估所述虚拟化表示;具体化(203)所述类型封装的所述虚拟化表示为所述至少一个评估模式中的特定评估模式,从而基于所述特定评估模式提供所述源代码的中间表示;利用与所述中间表示的新节点类型关联的新对象扩展(204)所述源代码的所述中间表示;以及基于所述源代码的扩展后的中间表示生成(205)所述目标代码。
技术领域
本发明涉及计算机中源代码到目标代码的转换方法和系统,具体来说,通过编译器利用分级类型封装来实现。本发明还涉及软件工程领域和领域专用语言(domainspecific language,DSL)子领域。
背景技术
海量数据处理为非结构化数据处理带来了新的挑战。分布式系统,如和SparkTM通过为分布式数据处理提供通用API和通用算法来解决此问题。海量数据的本性使得数据的及时处理变得非常重要。现有的方式为对内部通用机制进行微优化或手动调谐。
例如,正如Kevin J.Brown、Arvind K.Sujeeth、Hyouk Joong Lee、Tiark Rompf、Hassan Chafi、Martin Odersky、和Kunle Olukotun在PACT的《面向领域特定语言的异构并行框架》(第89–100页,2011)所言,编译过的领域专用语言(domain specific language,DSL)是提升编程水平并同时实现高性能的可靠方式。通过领域类型系统的扩展,DSL的灵活性得以实现。通常,通过封装外部类型将新类型导入DSL。类型封装是代码导入的标准操作。绝大多数现代语言,如C#和Java使用类型封装从其他语言如C++导入外部类型,以在标准模式下评估所述类型。
应用开发者想利用高水平的领域专用语言一次性写好算法。开发者所写的程序代码可以如图1所示(用Scala语言示出)。用户定义的类型用于寻找这个示例性程序代码中的f(x)的最大值。用领域专用语言所写的图1中的所述程序代码的“Bound”类型可通过以下DSL类型之一来实现,例如:Scala集合类型Seq[Double],Apache Spark类型RDD[Double]或用户自定义类型Line。
程序开发者需要重复利用来自一个DSL的外部类型和库,程序代码被写入第二DSL中,其中相同的类型被继续使用。
发明内容
本发明目的为提供有效地在第二种程序语言中重复利用原先在某种程序语言中定义的类型的概念。
此目的通过独立权利要求的特征得以实现。更多实施形式将通过从属权利要求、描述和附图要求变得明显。
本发明的基本思想是应用分布式数据处理系统的内部组件的封装和基于实际的处理数据进行内部算法专业化。尽管分级类型封装在这一概念中起重要作用,标准类型封装也可以用于该概念。
为了详细描述本发明,将使用以下术语、缩写和符号:
DSL:领域专用语言
IR:中间表示
API:应用编程接口
AST:抽象语法树
下面描述计算机中源代码到目标代码的转换系统、设备和方法,这些都应用类型封装将目标代码类型系统的类型导入源代码的类型系统,也叫源代码类型系统如DSL类型系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580083897.1/2.html,转载请声明来源钻瓜专利网。





