[发明专利]编译方法以及编译程序无效
申请号: | 200910003488.2 | 申请日: | 2009-01-15 |
公开(公告)号: | CN101488095A | 公开(公告)日: | 2009-07-22 |
发明(设计)人: | 浅尾忍 | 申请(专利权)人: | 松下电器产业株式会社 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 永新专利商标代理有限公司 | 代理人: | 杨 谦;胡建新 |
地址: | 日本*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 方法 以及 编译程序 | ||
1.一种编译方法,将以面向对象语言描述的、且至少具有一个类的输入程序转换为目标程序,其特征在于,包括:
虚拟继承解析步骤,解析所述输入程序中的所述类是否以虚拟继承被定义;
特殊函数共通化步骤,在所述虚拟继承解析步骤的解析结果为,所述类没有以虚拟继承被定义的情况下,生成将所述类的多个构造函数以及多个析构函数的至少一方共通化的代码;以及
生成步骤,生成包含在特殊函数共通化步骤生成的所述代码的目标程序。
2.如权利要求1所述的编译方法,其特征在于,
在所述虚拟继承解析步骤,根据所述输入程序中所描述的类定义,解析所述类是否以虚拟继承被定义了。
3.如权利要求1所述的编译方法,其特征在于,
在所述虚拟继承解析步骤,根据语言规范控制语句,来解析所述类是否以虚拟继承被定义了,所述语言规范控制语句是遵从语言规范在所述输入程序中被描述的控制语句。
4.如权利要求1所述的编译方法,其特征在于,
在所述虚拟继承解析步骤,根据语言规范控制指令,来解析所述类是否以虚拟继承被定义了,所述语言规范控制指令是遵从编译所述输入程序的编译系统的语言规范而被描述的控制指令。
5.如权利要求1所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,生成将没有以虚拟继承被定义的所述类的多个构造函数中的完全构造函数和部分构造函数共通化的代码,所述完全构造函数是指,在生成构成类对象的完全类对象时被调用的构造函数,而不是在生成部分类对象时被调用的构造函数,所述部分构造函数是指,在生成构成类对象的部分类对象时被调用的构造函数。
6.如权利要求5所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,生成将没有以虚拟继承被定义的所述类的多个析构函数中的完全析构函数和部分析构函数共通化的代码,所述完全析构函数是指,在生成构成类对象的完全类对象时被调用的析构函数,而不是在生成部分类对象时被调用的析构函数,所述部分析构函数是指,在生成构成类对象的部分类对象时被调用的析构函数。
7.如权权利要求1所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,将没有以虚拟继承被定义的所述类的多个构造函数中的完全构造函数和部分构造函数的某一方的调用指令替换为另一方的调用指令,并通过删除作为被替换的调用指令的构造函数的所述一方的构造函数的代码,从而生成将所述类的完全构造函数和部分构造函数共通化的代码。
8.如权利要求7所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,将没有以虚拟继承被定义的所述类的多个析构函数中的完全析构函数和部分析构函数的某一方的调用指令替换为另一方的调用指令,并通过删除作为被替换的调用指令的析构函数的所述一方的析构函数的代码,从而生成将所述类的完全析构函数和部分析构函数共通化的代码。
9.如权利要求1所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,删除没有以虚拟继承被定义的所述类的多个构造函数中的完全构造函数和部分构造函数中某一方的代码,并通过将表示完全构造函数的开头地址的标记和表示部分构造函数的开头地址的标记配置到没有被删除的另一方代码的开头,从而生成将所述类的完全构造函数和部分构造函数共通化的代码。
10.如权利要求9所述的编译方法,其特征在于,
在所述特殊函数共通化步骤,删除没有以虚拟继承被定义的所述类的多个析构函数中的完全析构函数和部分析构函数中某一方的代码,并通过将表示完全析构函数的开头地址的标记和表示部分析构函数的开头地址的标记配置到没有被删除的另一方代码的开头,从而生成将所述类的完全析构函数和部分析构函数共通化的代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于松下电器产业株式会社,未经松下电器产业株式会社许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910003488.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:电子电路、其驱动方法、电光学装置以及电子设备
- 下一篇:流体输送装置