[发明专利]编译方法以及编译程序无效
申请号: | 200910003488.2 | 申请日: | 2009-01-15 |
公开(公告)号: | CN101488095A | 公开(公告)日: | 2009-07-22 |
发明(设计)人: | 浅尾忍 | 申请(专利权)人: | 松下电器产业株式会社 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 永新专利商标代理有限公司 | 代理人: | 杨 谦;胡建新 |
地址: | 日本*** | 国省代码: | 日本;JP |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 方法 以及 编译程序 | ||
技术领域
本发明涉及编译方法以及编译程序,尤其涉及将以面向对象语言描述的至少具有一个类的输入程序转换为目标程序的编译方法以及编译程序。
背景技术
近些年,在软件开发中程序的规模逐渐趋向大规模化。为此,可维护性以及再利用性高的面向对象语言引人瞩目。在此,面向对象语言是指一种语言,其描述对象的动作,并将对象的动作及该对象组合起来作为程序来描述。并且,对象是指数据以及操作该数据的过程(方法)被一体化而成的单位。
面向对象语言例如有“C++”。“C++”是在过程性的编程语言“C”的基础上添加了对面向对象编程的支持的编程语言。并且,“C++”作为取代在长年编程中所广泛使用的“C”而引起了人们的注意,并且,逐渐从“C”移向了“C++”编程。
不过,虽然“C++”与“C”相比各种功能得到了强化,但是生成了冗长的代码。因此,提出了各种削减这种冗长的代码的技术(例如,专利文献1或专利文献2)。
在专利文献1中公开的方法是,删除有关对象没被生成的类的函数。
在此,类是指,在面向对象编程中,对汇集了数据以及作为该数据的操作过程的方法的对象雏形进行定义。通过这种定义,从而可以将同种的对象归结在一起处理。
在专利文献2中公开了不生成不进行调用的方法的函数定义的方法。
在此,函数是指,接受被称为变元的数据,执行规定的处理,并回答结果的一连串的指令群。函数成为以众多的编程语言构成程序的要素。
专利文献1日本特开2005-18425号公报
专利文献2日本特开2006-285584号公报
然而,在上述专利文献1公开的方法中,被限定在不生成对象的类,而在生成对象的类中的冗长函数就不能被删除。并且,在上述专利文献2公开的方法中,被限定在不进行调用的方法,而对于进行调用并存在冗长的函数定义的情况就不能对应了。
发明内容
本发明鉴于上述课题,目的在于提供一种编译方法以及编译程序,其可以在不受是否有类对象(class object)的生成或是否有调用的影响下,对生成的冗长的函数进行删除。
为了解决上述的课题,本发明所涉及的编译方法,将以面向对象语言描述的,且至少具有一个类的输入程序转换为目标程序,其中包括:虚拟继承解析步骤,解析所述输入程序中的所述类是否以虚拟继承被定义;特殊函数共通化步骤,在所述虚拟继承解析步骤的解析结果为,所述类没有以虚拟继承被定义的情况下,生成将所述类的多个构造函数以及多个析构函数的至少一方共通化的代码;以及生成步骤,生成包含在特殊函数共通化步骤生成的所述代码的目标程序。
根据此方法,从而可以在不受是否有类对象的生成或是否有调用的影响下,对没有以虚拟继承定义的类删除生成的冗长的函数(尤其是构造函数和析构函数),从而提高代码生成效率。据此,可以在不受是否有类对象的生成或调用的影响下,实现能够删除被生成的冗长的函数的编译方法。
最好是,在所述虚拟继承解析步骤,根据所述输入程序中所描述的类定义,解析所述类是否以虚拟继承被定义了。
根据此方法,可以针对程序中被定义的类中的没有以虚拟程序定义的类,删除被生成的冗长的构造函数和析构函数,从而提高代码生成效率。
而且,最好是,在所述虚拟继承解析步骤,根据语言规范控制语句,来解析所述类是否以虚拟继承被定义了,所述语言规范控制语句是遵从语言规范在所述输入程序中被描述的控制语句。
根据此方法,例如可以通过程序员将按照#pragma指令的语言规范控制语句描述到输入程序,从而可以不必解析原来输入程序中所描述的类定义,针对没有以虚拟继承定义的类删除被生成的冗长的构造函数和析构函数,从而使代码生成效率提高。
而且,最好是,在所述虚拟继承解析步骤,根据语言规范控制指令,来解析所述类是否以虚拟继承被定义了,所述语言规范控制指令是遵从编译所述输入程序的编译系统的语言规范而被描述的控制指令。
根据此方法,例如可以通过程序员提供按照编译系统的选项的语言规范控制指令,从而可以不必解析原来输入程序中所描述的类定义,针对没有以虚拟继承定义的类删除被生成的冗长的构造函数和析构函数,从而使代码生成效率提高。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于松下电器产业株式会社,未经松下电器产业株式会社许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910003488.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电子电路、其驱动方法、电光学装置以及电子设备
- 下一篇:流体输送装置