Apparatus and method enabling a compiled program to exactly recreate its source code
First Claim
Patent Images
1. A method enabling a computer to compile source code statements of a programming language, comprising the steps of:
- (a) translating a source code statement into an object code block;
(b) a compiler of the computer appending to the object code block information sufficient to exactly recreate the source code statement;
(c) linking the object code block and appended information into a list with object code and appended information for any related source code statements; and
(d) repeating steps (a) through (c) for each of the source code statements.
0 Assignments
0 Petitions
Accused Products
Abstract
A computer system capable of compiling PROLOG programs appends to the compiled code information necessary to recreate the source which generated the compiled code. This allows program statements which use the original source code to be compiled. Each program statement is compiled into a separate block of code, with all statements in a procedure linked together in lists. Program statements can be compiled as they are created, and statements can be added or deleted by adding or deleting blocks of compiled code from the appropriate lists.
128 Citations
19 Claims
-
1. A method enabling a computer to compile source code statements of a programming language, comprising the steps of:
-
(a) translating a source code statement into an object code block; (b) a compiler of the computer appending to the object code block information sufficient to exactly recreate the source code statement; (c) linking the object code block and appended information into a list with object code and appended information for any related source code statements; and (d) repeating steps (a) through (c) for each of the source code statements. - View Dependent Claims (2)
-
-
3. A method enabling a computer to exactly recreate a source code statement, comprising the steps of:
-
(a) compiling the source code statement into an object code block; (b) a compiler of the computer appending to the object code block recreation commands, wherein such recreation commands contain information sufficient, when considered in combination with the object code block, to recreate the source code statement; and (c) executing the recreation commands and the object code block in a source code recreation mode to recreate the source code statement.
-
-
4. A method for compiling a procedure having a plurality of clauses, comprising the compiler steps of:
-
(a) creating a procedure execution frame having a plurality of pointers, each pointer corresponding to a preselected subset of clauses of the procedure having similar characteristics; (b) separating compiling each clause into an object code block; (c) attaching to each object code block information sufficient to exactly recreate the clause from which that object code block was compiled, to create a clause execution frame; and (d) inserting each clause execution frame into a data structure which is pointed to by one of the procedure execution frame pointers. - View Dependent Claims (5, 6)
-
-
7. A method enabling a computer to compile a PROLOG program, comprising the steps of:
-
(a) translating source code statements into individual object code blocks; (b) a compiler of the computer appending to the object code blocks information sufficient to exactly recreate the source code statements; and (c) linking the object code blocks and appended information into lists with object code blocks and appended information for related source code statements. - View Dependent Claims (8, 9)
-
-
10. In a computer system for executing programs and having executable memory, the improvement comprising:
-
a plurality of procedure execution frames having pointers and located within the executable memory; and a plurality of clause execution frames located within the executable memory and corresponding to said procedure execution frames, wherein each of said clause execution frames, and wherein each of said clause execution frames can be reached by following pointers starting from a procedure execution frame, wherein each of said clause execution frames contains machine executable code, and further wherein each of said clause execution frames contains machine executable code sufficient to enable exact reconstruction of source code from which the machine executable code was derived. - View Dependent Claims (11)
-
-
12. A method enabling a computer to compile source code statements of a programming language, comprising the steps of:
-
(a) translating each source code statement into a block of machine executable instructions; (b) a compiler of the computer appending to the block of machine executable instructions recreation information, wherein such recreation information is sufficient to recreate the source code statement exactly; (c) linking each block of machine executable instructions having recreation information appended thereto into a list containing blocks of machine executable instructions and appended recreation information for any related source code statements; and (d) executing commands indicated by said recreation information and the block of machine executable instructions in a source code recreation mode to recreate the source code statement. - View Dependent Claims (13)
-
-
14. A method enabling a computer to compile a PROLOG program, comprising the steps of:
-
(a) translating each clause into an individual object code block; (b) a compiler of the computer appending to each object code block information sufficient to exactly recreate the source code statement from which it was translated, wherein the resulting object code block with appended information is referred to as a clause execution frame; and (c) linking the clause execution frame into lists with clause execution frames of related source code statements. - View Dependent Claims (15)
-
-
16. A method enabling using fully compiled code in source level symbolic debugging and incremental software development of high level languages, comprising the steps of:
-
(a) compiling each source code statement, said data structure having an object code block and a clause-command block; (b) during symbolic debugging and incremental software development executing said clause-command block to create a representation exactly matching said source code statement. - View Dependent Claims (17, 18, 19)
-
Specification