Inspection Methods in Programming.

Abstract

The work reported here lies in the area of overlap between artificial intelligence and software engineering. As research in artificial intelligence, it is a step towards a model of problem solving in the domain of programming. In particular, this work focuses on the routine aspects of programming which involve the application of previous experience with similar programs. I call this programming by inspection. Programming is viewed here as a kind of engineering activity. Analysis and synthesis by inspection are a prominent part of expert problem solving in many other engineering disciplines, such as electrical and mechanical engineering. The notion of inspection methods in programming developed in this work is motivated by similar notions in other areas of engineering. This report concentrates on the knowledge base of the programmer's apprentice, which is in the form of a taxonomy of commonly used algorithms and data structures. To the extent that a programmer is able to construct and manipulate programs in terms of the forms in such a taxonomy, he may relieve himself of many details and generally raise the conceptual level of his interaction with the system, as compared with present day programming environments. Also, since it is practical to expend a great deal of effort pre-analyzing the entries in a library, the difficulty of verifying the correctness of programs constructed this way is correspondingly reduced. The feasibility of this approach is demonstrated by the design of an initial library of common techniques for manipulating symbolic data.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 01, 1981
Accession Number
ADA110030

Entities

People

  • Charles Rich

Organizations

  • Massachusetts Institute of Technology

Tags

Communities of Interest

  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Artificial Intelligence
  • Circuit Analysis
  • Computations
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Electrical Engineering
  • Engineering
  • Engineers
  • Fish
  • Language
  • Lisp Programming Language
  • Mechanical Engineering
  • Programming Languages
  • Reasoning
  • Software Development

Fields of Study

  • Computer science
  • Engineering

Readers

  • Artificial Intelligence
  • Software Engineering.
  • Theoretical Analysis.

Technology Areas

  • AI & ML