Automatic Analysis of the Logical Structure of Programs,

Abstract

This report presents a method for viewing complex programs as built up out of simpler ones. The central idea is that typical programs are built up in a small number of stereotyped ways. The method is designed to make it easier for an automatic system to work with programs. It focuses on how the primitive operations performed by a program are combined together in order to produce the actions of the program as a whole. It does not address the issue of how complex data structures are built up from simpler ones, nor the relationships between data structures and the operations performed on them. The plan building methods (PBMs) and the automatic analysis system presented in this report have been developed as part of a larger research project. The goal of this project is to develop a system, called a Programmer's Apprentice (PA), which can assist a person who is writing a program. The purpose of the PA is to make the construction, maintenance, and modification of programs easier and more reliable. The PA is intended to be midway between an improved programming methodology which facilitates good programming style, and an automatic programming system. The intention is that the PA and a programmer will work together throughout all phases of the development and maintenance of a program. The programmer will do the hard parts of design and implementation while the PA will act as a junior partner and critic keeping track of all the details and assisting the programmer wherever possible.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1978
Accession Number
ADA084818

Entities

People

  • Richard C. Waters

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Cyber
  • Engineered Resilient Systems
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Abstracts
  • Artificial Intelligence
  • Automatic Programming
  • Computer Programming
  • Computer Science
  • Computers
  • Construction
  • Databases
  • Debugging
  • High Level Languages
  • Language
  • Maintenance
  • Programming Languages
  • Software Development
  • Specifications
  • Standards
  • Structured Programming

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Computational Linguistics
  • Software Engineering