SSTG™
RPG Decompiler Product Description
|
ABSTRACT
Every
computer program stores the same information in two different
computer languages. The first is called the source language
and consists of English-like instructions which can be understood
by humans. If a programmer wishes to change the task which
a program is to perform s/he changes the instructions contained
in the source. However, these instructions cannot be understood
by the computer. The computer can only process instructions
written in machine language. In order to run the program,
the source instructions must be run through a language translator
called a compiler. The compiler creates a new version of
the program, one written in machine language. In other words,
the compiler translates programs written in a language understandable
by humans into a language understood by the computer.
As long as the machine language version of the program exists
on the computer system, the program can be run, and as long
as the source language version exists on the system, the
program can be modified, enhanced or debugged by the programmer.
If the machine language version is accidentally destroyed,
the source can be run through the computer again, and a
new machine instruction version is generated. But, if the
source is accidentally destroyed, it can only be reached
by the use of a decompiler, a programmer's tool which reverses
the process of the original compiler.
MACHINE
REQUIREMENTS
AS/400 ENVIRONMENT: The SSTG utility will run on all
models of the AS/400 system. Version 3 Release 1 or above
of OS/400 is required.
DESCRIPTION
CAPABILITIES:
The AS/400 RPG compiler produces not only executable code,
but also a number of structures and tables which contain
information associating the source member to the executable
program object. An ODT (object definition table) is constructed
containing information (length, type, decimal positions)
about variables and constants. A BOM (break offset mapping)
table is constructed associating a source statement with
an MI instruction number. At that MI instruction number,
a string of MI instructions are performed corresponding
to the original RPG source instruction. A symbol table is
constructed, containing the names of source fields, tables
and arrays. Altogether, the program template contains almost
all of the information from the original source member.
The decompiler, then, has the capacity to generate a new
source member identical to the original, except for internal
comments, for any program object which has not had observability
removed.
PERFORMANCE:
Current benchmarks put the time required to decompile a
program at approximately three times (3x) longer than the
time required to compile the source program. That is, a
program which would take 1 minute to compile would take
3 minutes to decompile.
HIGHLIGHTS
Enhances/increases
user programmer productivity in several problem
solving areas
 |
Determines
which of several source members
corresponds to currently running object programs. |
| |
|
 |
Retrieves
modifications in current object
missing from current source. |
| |
|
 |
Delivers
Best Price/Performance
for Recreating Existing Code. |
| |
|
 |
Simplifies
Migration to New Platforms. |
| |
|
 |
Protects
Investment in Existing Software
for Which Source is Not Available. |
SECURITY
Each
copy of SSTG RPG/400 is tied to a particular CPU via the
system's unique serial number to prevent unauthorized duplication
of the software. In order to decompile a program object,
the user must have *ALLOBJ authority over the object to
be restored and *CHANGE authority to the source physical
file where the new member is to reside.
LIMITATIONS
SSTG
RPG currently supports decompilation of program objects
compiled under CPF release 8 through OS/400 V5R2 for those
objects which have not had observability removed.
