Browse Prior Art Database

Integrating Semantic Analysis into Program Restructuring

IP.com Disclosure Number: IPCOM000104516D
Original Publication Date: 1993-Apr-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 1 page(s) / 50K

Publishing Venue

IBM

Related People

Pleszkoch, MG: AUTHOR

Abstract

Program re-engineering is the area of automatically analyzing existing programs and transforming these programs into more modern and/or maintainable form. Program restructuring is a component of program re-engineering specifically concerned with transforming unstructured programs (e.g. those containing "GOTO" statements) into structured programs (e.g. having no "GOTO" statements that are equivalent in terms of the function that the program provides.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 64% of the total text.

Integrating Semantic Analysis into Program Restructuring

      Program re-engineering is the area of automatically analyzing
existing programs and transforming these programs into more modern
and/or maintainable form.  Program restructuring is a component of
program re-engineering specifically concerned with transforming
unstructured programs (e.g. those containing "GOTO" statements) into
structured programs (e.g. having no "GOTO" statements that are
equivalent in terms of the function that the program provides.

      Several automatic program re-structuring tools exist today.
One such tool is IBM's COBOL STRUCTURING FACILITY (COBOL/SF).  All
such tools suffer from the problem that if the original program is
already structured, then the tool does not change (i.e. improve) the
program.

      For example, suppose T1 and T2 are two re-structuring tools
such that T2 does a much better job than T1.  If a customer applies
T1 to an original program, and then later applies T2 to the program
generated by T1, then the application of T2 will have no effect, as
the output of T1 is already structured.  A second customer, who did
not use T1, and applies T2 directly to the original program will have
a superior result than the first customer.  A related problem occurs
if T1 is replaced by a programmer who is unfamiliar with structured
programming techniques and writes/updates a program that is
inefficiently structured.

      The solution to the above problem is to p...