Interpreter-based program language translator using embedded interpreter types and variables
AssigneeOptumSoft, Inc.
InventorDavid R. Cheriton
Life of this patent
Estimating the term…
Abstract
A programming language is extended to have embedded interpretive types (EIT) that define objects and variables to be resolved at translation time. A variable or data element having a type that is one of the EITs is referred to as an embedded interpretive variable (EIV). A control construct containing an EIV is interpreted (i.e. executed) at translation time.
Claims17
A method for automatically translating a computer program to a computer executable form, the method comprising:
- providing an input computer program expressed in an input computer language, wherein said input computer language includes a first set of data types for language elements or constructs to be evaluated at run time, and a second set of data types for language elements or constructs to be evaluated at translation time;
- wherein said input computer program includes at least one element or construct having a type in said first set of data types and includes at least one element or construct having a type in said second set of data types;
- automatically translating said input computer program to a computer executable output representation, including:
- determining, at translation-time, whether a data type of a specific element or construct in the input computer program is among the first set of data types or the second set of data types;
- in the event that the data type of the specific element or construct is among the second set of data types, at translation-time, executing code pertaining to the specific element or construct and performing translation;
- in the event that the data type of the specific element or construct is among the first set of data types, at translation-time, performing translation without executing the code pertaining to the specific element or construct;
- determining argument types provided to said operators, wherein at least one of said argument types is evaluated to a type value during said automatically translating;
- providing versions of said operators having input argument types consistent with said determined argument types;
- and
- providing said computer executable output representation as an output.
Computer hardware apparatus programmed to execute a method for automatically translating a computer program to a computer executable form, the method comprising:
- providing an input computer program expressed in an input computer language, wherein said input computer language includes a first set of data types for language elements or constructs to be evaluated at run time, and a second set of data types for language elements or constructs to be evaluated at translation time;
- wherein said input computer program includes at least one element or construct having a type in said first set of data types and includes at least one element or construct having a type in said second set of data types;
- automatically translating said input computer program to a computer executable output representation, including:
- determining, at translation-time, whether a data type of a specific element or construct in the input computer program is among the first set of data types or the second set of data types;
- in the event that the data type of the specific element or construct is among the second set of data types, at translation-time, executing code pertaining to the specific element or construct and performing translation;
- in the event that the data type of the specific element or construct is among the first set of data types, at translation-time, performing translation without executing the code pertaining to the specific element or construct;
- determining argument types provided to said operators, wherein at least one of said argument types is evaluated to a type value during said automatically translating;
- providing versions of said operators having input argument types consistent with said determined argument types;
- and
- providing said computer executable output representation as an output.
A non-transitory computer readable medium including a set of computer instructions for automatically performing a method for automatically translating a computer program to a computer executable form, the method comprising:
- providing an input computer program expressed in an input computer language, wherein said input computer language includes a first set of data types for language elements or constructs to be evaluated at run time, and a second set of data types for language elements or constructs to be evaluated at translation time;
- wherein said input computer program includes at least one element or construct having a type in said first set of data types and includes at least one element or construct having a type in said second set of data types;
- automatically translating said input computer program to a computer executable output representation, including:
- determining, at translation-time, whether a data type of a specific element or construct in the input computer program is among the first set of data types or the second set of data types;
- in the event that the data type of the specific element or construct is among the second set of data types, at translation-time, executing code pertaining to the specific element or construct and performing translation;
- in the event that the data type of the specific element or construct is among the first set of data types, at translation-time, performing translation without executing the code pertaining to the specific element or construct;
- determining argument types provided to said operators, wherein at least one of said argument types is evaluated to a type value during said automatically translating;
- providing versions of said operators having input argument types consistent with said determined argument types;
- and
- providing said computer executable output representation as an output.
Dependencies are inferred from the claim text.