Synthesized Structured Programming.
Abstract
Techniques of program modification are formulated, and an experimental software system implemented, whereby a given program that achieves one goal can be transformed into a new program to achieve a different goal. The essence of the approach is to find an analogy between the specifications of the given program and of the desired program, and then to transform the given program accordingly. Program debugging is considered as a special case of modification: if a program computes wrong results, it must be modified to achieve the intended results. The abstraction of a set of concrete programs to obtain a program schema and the instantiation of abstract schemata to solve concrete problems are also viewed from the perspective of modification techniques. Two tools are developed as aids in the above tasks: We describe transformation rules for synthesizing code from specifications in a top-down manner. They may be used when - in the course of modifying a program - the need arises to completely rewrite a program segment. For the purpose of determining what an incorrect program actually does - before attempting to debug it - we develop techniques of program annotation. These techniques are expressed as inference rules and derive invariant assertions from the program text. (Author)
Document Details
- Document Type
- Technical Report
- Publication Date
- Jan 01, 1980
- Accession Number
- ADA082359
Entities
People
- Zohar Manna
Organizations
- Weizmann Institute of Science