← Back to Patent Explorer
US5249275A Expired / Lapsed US ⏱️ 0.0 years remaining

Apparatus and method enabling a compiled program to exactly recreate its source code

Assignee: Texas Instruments Inc
•
Filing: 1991-04-30
•
Granted: 1993-09-28
•
Expires: 2011-04-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Aditya Srivastava

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 16:12
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4496

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 88 words
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.
Claim 2
Independent Claim 88 words
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.
Claim 3
Dependent Claim 108 words
The method of claim 1, wherein step (c) comprises compiler steps of: (c.1) creating a procedure execution frame for each procedure defined by the source code statements, each procedure execution frame have a plurality of pointers, wherein each pointer points to a list of object code blocks having a common property; (c.2) determining which procedure execution frame corresponds to the procedure in which the source code statement belongs; (c.3) selecting a list of object code blocks pointed to by a pointer in the determined procedure execution frame which have a common property with the source code statement; and (c.4) inserting the object code block into the selected list.
Claim 4
Independent Claim 86 words
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.
Claim 5
Independent Claim 86 words
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.
Claim 6
Independent Claim 103 words
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.
Claim 7
Independent Claim 103 words
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.
Claim 8
Dependent Claim 13 words
The method of claim 4, wherein the data structure is a linked list.
Claim 9
Dependent Claim 32 words
The method of claim 4, wherein the procedure execution frame pointers correspond to subsets of clauses which are to be executed depending on which type of argument is passed to the procedure.
Claim 10
Independent Claim 69 words
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.
Claim 11
Independent Claim 69 words
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.
Claim 12
Dependent Claim 108 words
The method of claim 7, wherein step (c) comprises compiler steps of: (c.1) creating a procedure execution frame for each procedure defined by the source code statements, each procedure execution frame having a plurality of pointers, wherein each pointer points to a list of object code blocks having a common property; (c.2) determining which procedure execution frame corresponds to the procedure in which the source code statement belongs; (c.3) selecting a list of object code blocks pointed to by a pointer in the determined procedure execution frame which have a common property with the source code statement; and (c.4) inserting the object code block into the selected list.
Claim 13
Dependent Claim 24 words
The method of claim 8, wherein the common property of steps (c.1) and (c.3) comprises the type of an argument passed to the procedure.
Claim 14
Dependent Claim 114 words
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.
Claim 15
Dependent Claim 114 words
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.
Claim 16
Dependent Claim 33 words
The system of claim 10, further comprising a mode of execution within said system for executing source code reconstruction statements and placing a copy of recreated source code into a preselected data structure.
Claim 17
Independent Claim 120 words
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.
Claim 18
Independent Claim 120 words
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.
Claim 19
Dependent Claim 85 words
The method of claim 12, wherein step (c) comprises: (c.1) providing a procedure execution frame for each procedure defined by the source code statements, each procedure execution frame having a plurality of pointers, wherein each pointer points to a list of blocks of machine executable instructions having recreation information appended thereto, and wherein the blocks in each list have a selected common property; and (c.2) inserting each block of machine executable instructions having recreation information appended thereto into a list having the selected common property.
Claim 20
Independent Claim 85 words
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.
Claim 21
Independent Claim 85 words
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.
Claim 22
Dependent Claim 100 words
The method of claim 14, wherein step (c) comprises: (c.1) providing a procedure execution frame for each procedure defined by the source code statements, wherein a procedure is defined as a group of clauses having the same predicate name in the heads of said group of clauses, and each procedure execution frame having a plurality of pointers, wherein each pointer points to a list of clause execution frames which have arguments of the same type in the heads thereof; (c.2) inserting the clause execution frame into a list with other clauses having the same predicate name and argument types thereas.
Claim 23
Independent Claim 64 words
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.
Claim 24
Independent Claim 64 words
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.
Claim 25
Dependent Claim 20 words
The method of claim 16, wherein step (a) further comprises the step of writing said clause-command block in machine language.
Claim 26
Dependent Claim 19 words
The method of claim 16, wherein step (b) further comprises the step of placing said representation on a heap.
Claim 27
Dependent Claim 56 words
The method of claim 16, further comprising the step of: (c) modifying said source code statement and said corresponding data structure by: editing said source code statement; compiling said edited source code into an object code block and a clause-command block; and entering said object code block and said clause-command block into said corresponding data structure.

References Cited (Backward Citations)

US4398249A Cited
US4389706A Cited
US4533997A Cited
US4099230A Cited
US4149243A Cited
US4456958A Cited
US4466061A Cited
US4468736A Cited
US4694420A Cited
US4558413A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-09-27 1997-03-29 1997-09-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-09-27 2001-03-29 2001-09-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-09-27 2005-03-29 2005-09-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag