[发明专利]一种高效的动态类型转换的实现方法有效

专利信息
申请号: 201210124840.X 申请日: 2012-04-25
公开(公告)号: CN102707947A 公开(公告)日: 2012-10-03
发明(设计)人: 张超;韦韬;黎斯达;丁羽;陈兆丰;段镭;张利华;赵晓濛;徐先栋;李坤 申请(专利权)人: 北京大学
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 北京君尚知识产权代理事务所(普通合伙) 11200 代理人: 余长江
地址: 100871*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提供一种高效的动态类型转换的实现方法,其步骤包括:编译器对源代码进行解析并构建类继承图、首基类图和首基类链;根据类继承图构建交叉转换域;根据首基类链划分下行转换域;为每个类创建thread表,并存储到编译后的二进制程序中;在每个类的虚函数表中增加指向所述thread表的指针、处理非公有继承的private表指针和转换域表,将该扩充后的虚函数表存储到编译后的二进制程序中;编译器为每一个dynamic_cast语句生成运行时代码,通过查找thread表、private表及转换域表完成动态类型转换。本发明用于编译器等设备中,可产生高效的可执行程序,提升程序的运行时性能。
搜索关键词: 一种 高效 动态 类型 转换 实现 方法
【主权项】:
一种高效动态类型转换的实现方法,其步骤包括:1)编译器对源代码进行解析,根据解析结果在编译过程中构建类继承图和首基类图;并根据所述首基类图,构建首基类链;2)对于每个类,编译器根据其类继承图构建交叉转换域;并根据首基类链,将该类的父类中不属于其交叉转换域的类划分为若干下行转换域;3)对于每个类,编译器为其创建一thread表,并将其存储到编译后的二进制程序中;对于与该类的父类集合的交集非空的首基类链,该thread表为其保留一表项;4)编译器在每个类的所有虚函数表中分别增加一指向所述thread表的指针、一处理非公有继承的private表指针和一转换域表;对每个交叉/下行转换域,该转换域表为其保留一表项;将该扩充后的虚函数表存储到编译后的二进制程序中;5)对于每一个dynamic_cast语句,编译器生成运行时代码,通过查找源对象的thread表、private表以及转换域表完成动态类型转换。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201210124840.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top