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)

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jan 01, 1980
Accession Number
ADA082359

Entities

People

  • Zohar Manna

Organizations

  • Weizmann Institute of Science

Tags

Communities of Interest

  • Autonomy
  • Cyber
  • Energy and Power Technologies

DTIC Thesaurus Topics

  • Algorithms
  • Applied Mathematics
  • Artificial Intelligence
  • Automatic Programming
  • Computations
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • Debugging
  • Engineering
  • Language
  • Programming Languages
  • Real Numbers
  • Software Development
  • Square Roots
  • Structured Programming

Fields of Study

  • Computer science
  • Engineering

Readers

  • Calculus or Mathematical Analysis
  • Computational Linguistics
  • Computer Science.

Technology Areas

  • AI & ML
  • AI & ML - Machine Learning Algorithms