[发明专利]特化类的手动精炼有效
申请号: | 201580028725.4 | 申请日: | 2015-04-21 |
公开(公告)号: | CN106716349B | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | B·戈茨;J·R·罗斯;A·R·布克利 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/30;G06F8/41;G06F8/70;G06F8/71;G06F8/76;G06F9/445;G06F9/448;G06F9/455 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 张鑫 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 特化 手动 精炼 | ||
虽然运行时特化器可能总是能够生成泛型类的自动特化版本,但是在某些情况下,用户对特化的控制的替代形式可以允许使用自动特化,同时还允许添加(或重写)特定于特化的方法实现。一般地,当将泛型类特化时,泛型类的成员集合可能不变。换句话说,与泛型版本中相同的成员可以存在于自动特化的版本中。但是,特化类的手动精炼可以允许开发人员将特化类的一个或多个方法的特定(有可能更好)表示和/或实现手动特化。
技术领域
本发明一般而言涉及软件开发并且更具体而言涉及在各种编程语言中任何一种语言当中的语言开发的各方面,作为一个例子,所述编程语言为诸如独立于平台的、面向对象的编程语言。
背景技术
在各种编程语言中,参数多态性(例如,泛型)可被认为是使语言更具表达性同时仍保持完全静态类型安全性的方式。参数多态性可以允许以泛型方式编写函数或数据类型,使得其可以以相同方式处理各种数据类型,而不管它们的类型不同。这样的函数和数据类型可被称为泛型函数和泛型数据类型。例如,泛型列表类可被写为ListT,这意味着它可以是任何类型T的元素的列表,其中T与List分开指定。
当使用不提供可以是用于所有其它类型的超类型的单个类型的面向对象语言时,经常不能在不使用特定转换操作的情况下在某些类型上进行泛化,其中所述特定转换操作为诸如装箱(例如,自动将基本类型(像int)的值转换成对应包装类(像Integer)的对象)。例如,传统上JavaTM语言不允许对象和基本类型上的泛型。
参数多态性(泛型)还可以涉及代码规模、生成成本和类型特殊性之间的权衡。例如,编程语言可以支持基本类型特化的泛型,但是可以静态地生成特化类,从而潜在增加了代码占用空间成本和编译成本。另一种编程语言可以为程序使用的每个实例化生成模板的特化实例化,这可能导致大的静态占用空间。还有第三种语言可以使用模板化的字节码格式,仅执行对运行时的特化,这可能在使用泛型类文件之前需要附加的步骤,从而潜在地损害了运行时性能。
发明内容
虽然运行时特化器可能总是能够生成泛型类的自动特化版本,但是在某些情况下,可以利用用户对特化的控制的替代形式。例如,可以使用自动特化,同时还允许使用特定于特化的方法实现。一般地,当将泛型类特化时,泛型类的成员集合可能不变。换句话说,与泛型版本中相同的成员可以存在于自动特化的版本中。但是,特化类的手动精炼可以允许开发人员将特化类的一个或多个方法的特定(有可能更好)表示和/或实现手动特化。
特化类的手动精炼可以包括利用方法的不同版本来重写方法的已有或自动特换版本。此外,手动精炼还可以包括在特化类中包括仅用于特定(而不是其他)类型参数化的另外的方法。因此,可以仅当对特定类型参数化特化对应的泛型类时,才在特化类中包括精炼方法。
例如,泛型类List可以对任何T是泛型的,并且List的自动特化版本可以包括泛型版本的所有字段和方法,但是如果Lsit对T=int被特化,则特定的一个类方法的新版本还可以被包括在特化类中。因此,根据一些实施例,如果Lsit对T=int被特化,则可以使用该方法的手动特化版本替代自动特化版本。
附图说明
图1是示出根据一个实施例的、实现特化类的依赖性驱动的共同特化的系统的部件的逻辑框图。
图2是示出根据一个实施例的依赖性驱动的共同特化的逻辑框图。
图3是示出如本文所述的用于依赖性驱动的共同特化的方法的一个实施例的流程图。
图4是示出根据一个实施例的、涉及依赖性链当中多个依赖性的依赖性驱动的共同特化的逻辑框图。
图5是示出根据一个示例实施例的、包括多个依赖性的依赖性驱动的共同特化的逻辑框图。
图6是示出根据一个实施例的泛型类的部分特化的逻辑框图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580028725.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于完成安全擦除操作的方法
- 下一篇:显示网页的方法和电子设备