Partial specialization of generic classes
First Claim
1. A non-transitory, computer-readable storage medium storing program instructions that when executed on a computing device cause the computing device to perform:
- partially specializing a generic class within a platform independent, object oriented runtime environment, wherein the generic class comprises a plurality of specializable type variables, wherein each of the plurality of specializable type variables are specializable over a plurality of type parameterizations; and
wherein to partially specialize the generic class, the program instructions further cause the computing device to perform;
specializing the generic class for a particular type variable of the plurality of specializable type variables over a particular type parameterization of the plurality of type parameterizations, without specializing the generic class for at least one other of the plurality of specializable type variables, such that the partially specialized generic class is further specializable for the at least one other specializable type variable over each of the plurality of type parameterizations.
1 Assignment
0 Petitions
Accused Products
Abstract
Generic classes may have more than one specializable type parameter and it may be desirable to specialize one or more of the type variables while not specializing others. The result of partial specialization may be one or more additional generic classes that are further specializable on the remaining type parameters. A runtime specializer may partially specialize a generic class to produce a partially specialized class and may subsequently further specialize the partially specialized class to generate a fully specialized class. Thus, rather than performing the specialization of a generic class all at once, such as by specializing Map<K, V> into Map<int, int> or Map<long, int>, one type parameter may be partially specialized, such as resulting in Map<K, int>, and then at some later time the remaining type parameter(s) may be specialized, such as to generate Map<int, int> or Map<long, int>.
39 Citations
20 Claims
-
1. A non-transitory, computer-readable storage medium storing program instructions that when executed on a computing device cause the computing device to perform:
-
partially specializing a generic class within a platform independent, object oriented runtime environment, wherein the generic class comprises a plurality of specializable type variables, wherein each of the plurality of specializable type variables are specializable over a plurality of type parameterizations; and wherein to partially specialize the generic class, the program instructions further cause the computing device to perform; specializing the generic class for a particular type variable of the plurality of specializable type variables over a particular type parameterization of the plurality of type parameterizations, without specializing the generic class for at least one other of the plurality of specializable type variables, such that the partially specialized generic class is further specializable for the at least one other specializable type variable over each of the plurality of type parameterizations. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
partially specializing, by a platform-independent, object-oriented, runtime environment implemented on one or more computing devices, a generic class within a platform independent, object oriented runtime environment, wherein the generic class comprises a plurality of specializable type variables, wherein each of the plurality of specializable type variables are specializable over a plurality of type parameterizations; and wherein said partially specializing comprises; specializing, by the platform-independent, object-oriented, runtime environment, the generic class for a particular type variable of the plurality of specializable type variables over a particular type parameterization of the plurality of type parameterizations, without specializing the generic class for at least one other of the plurality of specializable type variables, such that the partially specialized generic class is further specializable for the at least one other specializable type variable over each of the plurality of type parameterizations. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computing device, comprising:
-
a processor; and a memory comprising program instructions, that when executed on the processor cause the processor to; partially specialize a generic class within a platform independent, object oriented runtime environment, wherein the generic class comprises a plurality of specializable type variables, wherein each of the plurality of specializable type variables are specializable over a plurality of type parameterizations; and wherein to partially specialize the generic class, the program instructions further cause the processor to; specialize the generic class for a particular type variable of the plurality of specializable type variables over a particular type parameterization of the plurality of type parameterizations, without specializing the generic class for at least one other of the plurality of specializable type variables, such that the partially specialized generic class is further specializable for the at least one other specializable type variable over each of the plurality of type parameterizations. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification