A Formal Representation For Plans In The Programmer's Apprentice

A plan calculus is presented which is being used to represent programs and a library of standard data and control abstractions in the programmer's apprentice. Important features of this formalism include: programming language independence, additivity, verifiability and multiple points of view. The logical foundations of the representation are specified formally using a situational calculus in which side effects and overlapping mutable data structures are accounted for. The plan calculus is comparedwith other formalisms, such as program schemas, and its advantages pointed out.

[1]  Howard E Shrobe,et al.  Dependency Directed Reasoning for Complex Program Understanding , 1979 .

[2]  Richard C. Waters,et al.  A Method for Analyzing Loop Programs , 1979, IEEE Transactions on Software Engineering.

[3]  Richard C. Waters,et al.  The Programmer's Apprentice: Knowledge Based Program Editing , 1982, IEEE Transactions on Software Engineering.

[4]  Richard C. Waters,et al.  Overview of the Programmer's Apprentice , 1979, IJCAI.

[5]  Charles Rich Multiple points of view in modelling programs , 1980, Workshop on Data Abstraction, Databases and Conceptual Modelling.

[6]  Earl D. Sacerdoti,et al.  Planning in a Hierarchy of Abstraction Spaces , 1974, IJCAI.

[7]  John McCarthy,et al.  SOME PHILOSOPHICAL PROBLEMS FROM THE STANDPOINT OF ARTI CIAL INTELLIGENCE , 1987 .

[8]  Manfred Broy,et al.  Program Development as a Formal Activity , 1981, IEEE Transactions on Software Engineering.

[9]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[10]  Mary Shaw,et al.  Abstraction and verification in Alphard: Defining and specifying iteration and generators , 1977 .

[11]  Gerald Jay Sussman,et al.  The Conniver Reference Manual , 1972 .

[12]  John V. Guttag,et al.  Abstract data types and the development of data structures , 1977, CACM.

[13]  Jr. Guy L. Steele,et al.  Rabbit: A Compiler for Scheme , 1978 .

[14]  David A. McAllester An Outlook on Truth Maintenance. , 1980 .

[15]  Zohar Manna,et al.  Introduction to mathematical theory of computation , 1972 .

[16]  David Robbins Barstow,et al.  Automatic construction of algorithms and data structures using a knowledge base of programming rules , 1977 .

[17]  Jayadev Misra,et al.  Some Aspects of the Verification of Loop Computations , 1978, IEEE Transactions on Software Engineering.

[18]  Gerald Jay Sussman,et al.  Programming Viewed as an Engineering Activity , 1978 .

[19]  Jay Earley,et al.  Toward an understanding of data structures , 1971, SIGFIDET '70.

[20]  Susan L. Gerhart Knowledge about programs: A model and case study , 1975 .

[21]  Richard C. Waters Automatic Analysis of the Logical Structure of Programs , 1978 .

[22]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, Commun. ACM.

[23]  Jayadev Misra An Approach to Formal Definitions and Proofs of Programming Principles , 1978, IEEE Transactions on Software Engineering.

[24]  Jayadev Misra,et al.  Some classes of naturally provable programs , 1976, ICSE '76.

[25]  Gerald Jay Sussman,et al.  The Art of the Interpreter or, The Modularity Complex (Parts Zero, One, and Two) , 1978 .

[26]  Kristen Nygaard,et al.  SIMULA: an ALGOL-based simulation language , 1966, CACM.

[27]  Richard C. Wafers A knowledge based program editor , 1981, IJCAI 1981.

[28]  Thomas E. Cheatham,et al.  Program refinement by transformation , 1981, ICSE '81.

[29]  Gerald Jay Sussman,et al.  SLICES: At the Boundary Between Analysis and Synthesis , 1977 .

[30]  James J. Horning,et al.  Formal specification as a design tool , 1980, POPL '80.

[31]  Terry Winograd,et al.  Breaking the complexity barrier again , 1973, SIGPLAN '73.

[32]  Thomas E. Bell,et al.  An Extendable Approach to Computer-Aided Software Requirements Engineering , 1976, IEEE Transactions on Software Engineering.

[33]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[34]  John C. Reynolds,et al.  Reasoning about arrays , 1979, CACM.

[35]  Mark L. Miller,et al.  Problem solving grammars as formal tools for intelligent CAI , 1977, ACM '77.

[36]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

[37]  G. G. Faust SEMIAUTOMATIC TRANSLATION OF COBOL INTO HIBOL , 1981 .