• DocumentCode
    749626
  • Title

    Initial Report on a Lisp Programmer´s Apprentice

  • Author

    Rich, Charles ; Shrobe, Howard E.

  • Author_Institution
    Artificial Intelligence Laboratory, Massachusetts Institute of Technology
  • Issue
    6
  • fYear
    1978
  • Firstpage
    456
  • Lastpage
    467
  • Abstract
    This paper reports on the initial design and partial implementation of an interactive programming environment to be used by expert programmers. The system is based on three forms of program description: 1) definition of structured data objects, their parts, properties, and relations between them, 2) input–output specification of the behavior of program segments, and 3) a hierarchical representation of the internal structure of programs (plans). The plan representation is of major theoretical interest because it includes not only data flow and control flow relationships between subsegments of a program, but also goal-subgoal, prerequisite, and other logical dependencies between the specifications of the subsegments. Plans are utilized both for describing particular programs and in the compilation of a knowledge base of more abstract knowledge about programming, such as the concept of a loop and various specializations, such as enumeration loops and search loops. We also describe a deductive system which can verify the correctness of plans involving side effects on complex data with structure sharing.
  • Keywords
    Computer-aided design; Lisp; data abstraction; perturbation analysis; procedural abstraction; program verification; programmer´s apprentice; programming methodology; side effects; software design; software development; software engineering; Artificial intelligence; Assembly systems; Automatic programming; Hardware; Power engineering computing; Program processors; Programming environments; Programming profession; Software design; Software engineering; Computer-aided design; Lisp; data abstraction; perturbation analysis; procedural abstraction; program verification; programmer´s apprentice; programming methodology; side effects; software design; software development; software engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.1978.233869
  • Filename
    1702565