[发明专利]在编译器中构建基于图的中间表示的方法有效
申请号: | 201380078243.0 | 申请日: | 2013-07-23 |
公开(公告)号: | CN105593815B | 公开(公告)日: | 2019-08-20 |
发明(设计)人: | 亚历山大·弗拉基米罗维奇·斯莱萨连科;安东·尤利耶维奇·奥尔洛夫;张洪波 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译器 构建 基于 中间 表示 方法 | ||
1.一种将图数据结构构建为编译器的源代码的中间表示的方法(800),所述编译器用于将所述源代码编译为在计算机系统的处理器上运行的可执行机器代码,其中所述源代码的程序操作通过类对象以面向对象编程语言表示,所述类对象形成层次结构,所述层次结构从所述图数据结构的基节点类派生而来,其特征在于,所述方法包括:
通过在所述图数据结构的节点中实施的工厂方法设计模板调用与所述图数据结构的现有节点关联的工厂方法产生所述图数据结构的新节点(801),其中所述图数据结构的所述节点由符号标识;以及
根据代理设计模板将所述符号用作所述图数据结构的所述节点(803)的代理。
2.根据权利要求1所述的方法(800),其特征在于,所述图数据结构的每个节点作为类的对象来实施。
3.根据权利要求1或权利要求2所述的方法(800),其特征在于,所述符号用作所述图数据结构对应节点的类型化代理。
4.根据权利要求3所述的方法(800),其特征在于,所述工厂方法使用所述符号的实例,使得调用符号的方法时,执行所述节点的对应方法。
5.根据权利要求1所述的方法(800),其特征在于,依据所述图数据结构的节点的类型,所述节点的每个类包括工厂方法。
6.根据权利要求1所述的方法(800),其特征在于,所述工厂方法用于产生所述新节点以及到所述现有节点的连接。
7.根据权利要求1所述的方法(800),其特征在于,每个工厂方法包括与所述图数据结构的所述节点的类关联的子例程,所述工厂方法确定在程序运行时间通过所述相关类的实例所展示的行为。
8.根据权利要求1所述的方法(800),其特征在于,所述代理包括用作主题的接口的类。
9.根据权利要求1所述的方法(800),其特征在于,所述代理设计模板用于向代理提供工厂方法,所述工厂方法用于将调用所述代理的所述工厂方法的客户端的调用委托给被调用的主题。
10.根据权利要求1所述的方法(800),其特征在于,所述工厂方法设计模板用于设计创建对象的接口。
11.根据权利要求10所述的方法(800),其特征在于,实施所述接口的所述面向对象编程语言的类决定实例化哪一个类。
12.根据权利要求1所述的方法(800),其特征在于,所述图数据结构的所述节点是以下之一:所述图数据结构的一部分、整数索引表示的外部实体、引用表示的外部实体。
13.根据权利要求1所述的方法(800),其特征在于,所述面向对象编程语言包括以下特征:虚方法、抽象方法、以及参数化类型。
14.一种将源代码(1702)编译为在计算机系统的处理器上运行的可执行机器代码的装置(1700),其特征在于,所述装置(1700)包括:
构建装置(1701),用于将图数据结构构建为所述源代码(1702)的中间表示(1704),其中所述源代码(1702)的程序操作通过类对象以面向对象编程语言表示,所述类对象形成层次结构,所述层次结构从所述图数据结构的基节点类派生而来,所述构建装置(1701)包括:
产生装置(1703),用于通过所述图数据结构的所述节点中实施的工厂方法设计模板调用与所述图数据结构的现有节点关联的工厂方法产生所述图数据结构的新节点,其中所述图数据结构的所述节点由符号标识;以及
代理装置(1705),用于根据代理设计模板将所述符号用作所述图数据结构的所述节点的代理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380078243.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:管理文件的方法、分布式存储系统和管理节点
- 下一篇:引起通知的显示