Type inference and type-directed late binding
First Claim
Patent Images
1. A computer program product comprising one or more computer hardware readable storage devices having encoded thereon computer executable instructions which, when executed upon one or more computer processors instantiates components comprising:
- an option component that supplies an option, to a user, prior to compiling at least a portion of software code in the computing system, the software code portion including at least one variable of a changeable static type, allowing the user to determine whether to opt-in to use late binding during compilation of the software code portion, whether to opt-out of and not use the late binding during compilation of the software code portion, and determine what type of late binding to implement for the at least one variable within the software code portion, the option component associated with a programming language in which the software code portion was written, and wherein the at least one variable has one static type in one software code region and the same at least one variable has a different static type in another software code region; and
a helper that facilitates the late binding, the late binding based at least in part on a type specified or inferred for a variable of the programming language.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods that enhance and balance a late binding and an early binding in a programming language, via supplying an option component to opt-in (or opt-out) late binding, and wherein a late binding is triggered based on a static type for the variable (e.g., object or a type/string.) Additionally, the variable is enabled to have different static types at different regions (e.g., a program fragment) of the programming language.
89 Citations
20 Claims
-
1. A computer program product comprising one or more computer hardware readable storage devices having encoded thereon computer executable instructions which, when executed upon one or more computer processors instantiates components comprising:
-
an option component that supplies an option, to a user, prior to compiling at least a portion of software code in the computing system, the software code portion including at least one variable of a changeable static type, allowing the user to determine whether to opt-in to use late binding during compilation of the software code portion, whether to opt-out of and not use the late binding during compilation of the software code portion, and determine what type of late binding to implement for the at least one variable within the software code portion, the option component associated with a programming language in which the software code portion was written, and wherein the at least one variable has one static type in one software code region and the same at least one variable has a different static type in another software code region; and a helper that facilitates the late binding, the late binding based at least in part on a type specified or inferred for a variable of the programming language. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product comprising one or more computer hardware readable storage devices having encoded thereon computer executable instructions which, when executed upon one or more computer processors performs a method comprising:
-
employing at least one processor executing computer executable instructions stored on a computer readable storage medium to implement the following acts; supplying a user with an option, prior to compiling at least a portion of software code in a computing system, the software code portion including at least one variable of a changeable static type, that allows the user to determine whether to opt-in to utilize late binding during compilation of the software code portion, whether to opt-out and utilize non late binding, and determine what type of late binding to implement on the software code portion during compilation of the software code portion associated with a programming language in which the software code portion was written, wherein the type for variables with changeable static types is inferred based on the use of the variable, wherein the at least one variable has one static type in one software code region and the same at least one variable has a different static type in another software code region, and wherein the option to opt-in or opt-out allows the same at least one variable name to be used with different static types in a plurality of different software code segments of the software code portion; determining that one of the late binding is to be utilized or the non late binding is to be utilized based at least in part on an indication regarding the option obtained from the user; performing the one of the late binding or the non late binding based at least in part on the determination; inferring a type of a variable; and changing a static type of the variable as part of the programming language. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer system comprising:
-
at least one processor; and a computer readable storage medium storing computer executable instructions which, when executed by the at least one processor, cause the system to perform the method comprising; providing an option, to a user, prior to compiling at least a portion of software code in the computing system, the software code portion including at least one variable of a changeable static type, allowing the user to both determine whether to opt in or opt out of a late binding during compilation of the software code portion for a programming language in which the software code portion was written and determine what type of late binding to implement on the software code portion, wherein the type for variables with changeable static types is inferred based on the use of the variable, and wherein the at least one variable has one static type in one software code region and the same at least one variable has a different static type in another software code region; and performing the late binding when the an indication relating to the option is obtained and indicates to opt in to the late binding.
-
Specification