Compiler design using object technology with cross platform capability
First Claim
1. A method of compiling source code into objects for subsequent execution using an object execution engine, comprising:
- parsing statements of a computer program'"'"'s source code;
converting each of the parsed statements into one or more pre-defined, persistent instruction objects, each of which has at least one virtual function that permits the instruction object to be executed by the object execution engine so as to carry out one or more machine language instructions;
ordering the instruction objects to thereby generate a sequence of the instruction objects; and
storing the instruction objects on non-volatile storage.
0 Assignments
0 Petitions
Accused Products
Abstract
A programming language environment that includes an object compiler and associated object execution engine. The object compiler parses and converts source code into object-oriented, compiled code that is platform independent and that can be executed by the object execution engine at speeds close to that of a true compiled binary executable. The compiler parses the statements of source code and converts each statement into one or more pre-defined, persistent instruction objects. Then, it orders the instruction objects, generating a sequence of instruction objects that are stored as a platform-independent file. The instruction objects each have a virtual initialize method, a virtual execute method, and an index indicative of the next instruction object in the sequence. Data used in the statements can be represented as persistent data objects and the instruction objects and data objects can be stored in separate stacks (i.e., as linked lists), with their indices indicating their position within the stack. The memory address of each instruction object and data object is allocated dynamically at run time, with the initialize method being used to convert each index to a pointer that identifies the memory address of the next object in the stack. The execute method executes at least one machine language instruction and returns a pointer to the next instruction object. Thus, the object execution engine executes the sequence of instruction objects by calling the execute method of each instruction object and using the returned pointer to access the next instruction object.
48 Citations
15 Claims
-
1. A method of compiling source code into objects for subsequent execution using an object execution engine, comprising:
-
parsing statements of a computer program'"'"'s source code;
converting each of the parsed statements into one or more pre-defined, persistent instruction objects, each of which has at least one virtual function that permits the instruction object to be executed by the object execution engine so as to carry out one or more machine language instructions;
ordering the instruction objects to thereby generate a sequence of the instruction objects; and
storing the instruction objects on non-volatile storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
determining an index for each instruction object indicative of its position within the sequence; and
storing the instruction indices on the non-volatile storage.
-
-
3. The method of claim 1, wherein said converting step further comprises converting each of the parsed statements into one or more pre-defined instruction objects having a virtual initialize method, a virtual execute method, and an index indicative of the next instruction object in the sequence.
-
4. The method of claim 1, further comprising the step of representing data used in said statements as persistent data objects, each of which has an index associated therewith, wherein data used by said instruction objects is accessed using the indices associated with the data.
-
5. The method of claim 4, wherein said persistent data objects include arithmetic data objects.
-
6. The method of claim 4, wherein said persistent data objects include window data objects.
-
7. The method of claim 4, wherein said persistent data objects include graphical user interface data objects.
-
8. The method of claim 4, wherein said persistent data objects include process simulation data objects.
-
9. A digital storage device for use in executing a sequence of instruction objects, comprising:
-
a non-volatile digital storage medium;
an object execution engine stored on said digital storage medium; and
a plurality of instruction object definitions stored on said digital storage medium, each of said instruction object definitions defining a separate class of instruction objects having at least one execute method, said execute method being operable to execute at least one machine language instruction associated therewith and to provide a return value that identifies another of said instruction objects;
wherein said object execution engine is operable to execute a sequence of said instruction objects by sequentially calling the execute method of each of the instruction objections contained in the sequence, with the object execution engine further being operable to use the return value received for each instruction object to select the next instruction object in the sequence for execution. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification