Systems and methods providing lightweight runtime code generation
First Claim
1. A computer readable medium having computer readable instructions stored thereon for implementing a runtime code generator for a managed object environment, the runtime code generator comprising:
- a class allocator that, upon receiving a dynamic method call, reserves one or more method slots in a method table having memory locations for at least one function pointer associated with the dynamic method call; and
a dynamic method builder that creates a method description from an intermediate language stream of metadata tokens and submits the method description to a Just-In-Time compiler that is configured to resolve a value for the at least one function pointer and return the value of the at least one function pointer that maps to the one or more method slots to facilitate execution of the dynamic method call at runtime.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to systems and methods that facilitate dynamic programming language execution in a managed code environment. A runtime code generator is provided within the framework of a managed object environment. The code generator includes a class allocator that reserves one or more method slots for a dynamic method call. A dynamic method builder then employs the method slots to generate an intermediate language stream that forms a method description. The method description is then fed to a Just-In-Tine (JIT) compiler that returns at least one dynamically generated pointer to facilitate execution of the dynamic method call at runtime.
97 Citations
21 Claims
-
1. A computer readable medium having computer readable instructions stored thereon for implementing a runtime code generator for a managed object environment, the runtime code generator comprising:
-
a class allocator that, upon receiving a dynamic method call, reserves one or more method slots in a method table having memory locations for at least one function pointer associated with the dynamic method call; and a dynamic method builder that creates a method description from an intermediate language stream of metadata tokens and submits the method description to a Just-In-Time compiler that is configured to resolve a value for the at least one function pointer and return the value of the at least one function pointer that maps to the one or more method slots to facilitate execution of the dynamic method call at runtime. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system that facilitates dynamic code execution, the system stored on computer-readable media, the system comprising:
-
means for receiving a dynamic method call and allocating at runtime one or more slots in a method table for storing one or more function pointers associated with execution of the dynamic method call; means for generating a method description from an intermediate language stream of metadata tokens; means for submitting the method description to a Just-In-Time compiler; means for generating at least one value for at least one of the one or more function pointers from the method description by a Just-In-Time compiler; and means for dynamically mapping the one or more slots in the method table with the at least one value of the one or more function pointers.
-
-
16. A method that facilitates dynamic data type processing, comprising:
-
reserving one or more memory locations in a method table by a class allocator in accordance with a user model upon receiving the dynamic function call; creating a description for the called dynamic function from an intermediate language stream of metadata tokens; submitting the description to a Just-In-Time compiler; automatically generating a function pointer f6r the dynamic function by a Just-In-Time compiler, the function pointer relating to an address of the dynamic function description; and dynamically mapping the generated function pointer into the reserved memory locations in the method table. - View Dependent Claims (17, 18, 19, 20, 21)
-
Specification