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

Industrial controller decompiler accommodating an expandable instruction set

Assignee: Allen Bradley Co LLC
•
Filing: 1996-12-09
•
Granted: 1999-03-09
•
Expires: 2016-12-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A decompiler works with a compiler for an industrial controller having a user modifiable instruction table to contain code fragments necessary to compile particular instructions. During compilation, the instructions are replaced with the code fragments. Thus new instructions recognizable by the compiler may be added simply by editing this instruction table. The decompiler identifies a portion of the compiled new instructions by reference to the same instruction table used by the compiler thus maintaining compatibility with the compiler.

Inventors

  • 👤 Amir S. Ansari
  • 👤 Mohammad S. Khan
  • 👤 Jeffrey W. Brooks

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 14:41
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/48; G06F8/53

Claims Analysis

Total Claims: 5
Claim 1
Independent Claim 258 words
A decompiler for an industrial controller, the decompiler operating on an object program produced on a compiler that provides user defined compilable instruction, the object program produced from a source program having instruction names and operand names, the object program further connected with a symbol table associating operand names of the source program with memory locations assigned to the operand names in the object code, the object code further having non-executing instruction providing a token identifying at least one instruction name of the source program, the decompiler stored and executed in an electronic computer and comprising: a) an instruction table having a plurality of entries associating an instruction name with: i) operand interface description, providing information needed to move operand data from an arbitrary memory location to a predetermined memory location of the industrial controller, and ii) instruction executing code executable on the industrial controller to perform the computer operation of the instruction name on operand data at the predetermined memory location; b) token scanner program scanning compiled object code for tokens identifying a an instruction name; c) an unbuilder/delinker receiving the instruction name identified by the token scanner and: i) matching the instruction name with an entry of the instruction table to identify and replace in the object code the operand gathering code based on the operand interface description, and instruction executing code held in the instruction table, with the instruction name; and ii) reviewing the remaining object code for memory locations and using the symbol table to replacing these memory locations with the corresponding operand names.
Claim 2
Dependent Claim 258 words
A decompiler for an industrial controller, the decompiler operating on an object program produced on a compiler that provides user defined compilable instruction, the object program produced from a source program having instruction names and operand names, the object program further connected with a symbol table associating operand names of the source program with memory locations assigned to the operand names in the object code, the object code further having non-executing instruction providing a token identifying at least one instruction name of the source program, the decompiler stored and executed in an electronic computer and comprising: a) an instruction table having a plurality of entries associating an instruction name with: i) operand interface description, providing information needed to move operand data from an arbitrary memory location to a predetermined memory location of the industrial controller, and ii) instruction executing code executable on the industrial controller to perform the computer operation of the instruction name on operand data at the predetermined memory location; b) token scanner program scanning compiled object code for tokens identifying a an instruction name; c) an unbuilder/delinker receiving the instruction name identified by the token scanner and: i) matching the instruction name with an entry of the instruction table to identify and replace in the object code the operand gathering code based on the operand interface description, and instruction executing code held in the instruction table, with the instruction name; and ii) reviewing the remaining object code for memory locations and using the symbol table to replacing these memory locations with the corresponding operand names.
Claim 3
Dependent Claim 21 words
The decompiler of claim 1 wherein the scanner detects object code tokens by looking for a NOP instruction indicating no operation.
Claim 4
Independent Claim 244 words
A method of decompiling a program for an industrial controller having user-defined compilable instructions, the method starting with an object program and creating a source program, the object program having non-executing instructions providing a token, the token identifying at least one source program instruction name, the object program further having operand gathering code and instruction executing code, the object code being connected with a symbol table associating memory locations of the object code with operand names of the source program, the object code having been compiled using an instruction table having a plurality of entries associating user defined instruction names with: i) operand interface description, providing information needed to move operand data from an arbitrary memory location to a predetermined memory location of the industrial controller, and ii) instruction executing code executable on the industrial controller to perform the computer operation of the instruction name on operand data at the predetermined memory location; the method executed in an electronic computer and comprising the steps of: a) scanning the object code for tokens identifying an instruction name; b) matching the instruction name with an entry of the instruction table to identify and replace in the object code operand gathering code developed from the operand interface description and the instruction executing code with the instruction name; and c) reviewing the remaining object code for memory locations and using the symbol table to replace these memory locations with the corresponding operand names to return the source code.
Claim 5
Independent Claim 244 words
A method of decompiling a program for an industrial controller having user-defined compilable instructions, the method starting with an object program and creating a source program, the object program having non-executing instructions providing a token, the token identifying at least one source program instruction name, the object program further having operand gathering code and instruction executing code, the object code being connected with a symbol table associating memory locations of the object code with operand names of the source program, the object code having been compiled using an instruction table having a plurality of entries associating user defined instruction names with: i) operand interface description, providing information needed to move operand data from an arbitrary memory location to a predetermined memory location of the industrial controller, and ii) instruction executing code executable on the industrial controller to perform the computer operation of the instruction name on operand data at the predetermined memory location; the method executed in an electronic computer and comprising the steps of: a) scanning the object code for tokens identifying an instruction name; b) matching the instruction name with an entry of the instruction table to identify and replace in the object code operand gathering code developed from the operand interface description and the instruction executing code with the instruction name; and c) reviewing the remaining object code for memory locations and using the symbol table to replace these memory locations with the corresponding operand names to return the source code.

References Cited (Backward Citations)

US5247693A Cited
US5287548A Cited
US5005152A Cited
US5586330A Cited
US5386569A Cited
US5504902A Cited
US5508909A Cited
US5586328A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-03-08 2002-09-07 2003-03-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-03-08 2006-09-07 2007-03-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-03-08 2010-09-07 2011-03-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag