The Programmer's Apprentice: A Session with KBEmacs

The Knowledge-Based Editor in Emacs (KBEmacs) is the current demonstration system implemented as part of the Programmer's Apprentice project. KBEmacs is capable of acting as a semiexpert assistant to a person who is writing a program-taking over some parts of the programming task. Using KBEmacs, it is possible to construct a program by issuing a series of high level comnmands. This series of commands can be as much as an order of magnitude shorter than the program it describes.

[1]  Linda M. Zelinka An Empirical Study of Program Modification Histories , 1983 .

[2]  Richard C. Waters,et al.  Expressional loops , 1984, POPL.

[3]  Micha Sharir,et al.  Experience with the SETL Optimizer , 1983, TOPL.

[4]  Noah S. Prywes,et al.  Use of Very High Level Languages and Program Generation by Management Professionals , 1984, IEEE Transactions on Software Engineering.

[5]  Charles Rich Knowledge Representation Languages and Predicate Calculus: How to Have Your Cake and Eat It Too , 1982, AAAI.

[6]  Charles Rich Inspection methods in programming , 1980 .

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

[8]  Peter J. Sterpe TEMPEST: A Template Editor for Structured Text , 1985 .

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

[10]  Charles Rich A Formal Representation For Plans In The Programmer's Apprentice , 1982, On Conceptual Modelling.

[11]  Richard C. Waters,et al.  Program editors should not abandon text oriented commands , 1982, SIGP.

[12]  Kent Pitman Interfacing to the Programmer's Apprentice , 1983 .

[13]  Gerald Jay Sussman,et al.  Computer aided evolutionary design for digital integrated systems , 1980 .

[14]  Cordell Green Research on Knowledge Based Programming and Algorithm Design. , 1981 .

[15]  Stephen Fickas,et al.  Automating the Transformational Development of Software , 1985, IEEE Transactions on Software Engineering.

[16]  Richard C. Waters,et al.  The disciplined use of simplifying assumptions , 1982, Rapid Prototyping.

[17]  James M. Boyle,et al.  Program Reusability through Program Transformation , 1984, IEEE Transactions on Software Engineering.

[18]  Paul Bassett Design principles for software manufacturing tools , 1984, ACM '84.

[19]  Richard C. Waters,et al.  KBEmacs: A Step Toward the Programmer''s Apprentice , 1985 .

[20]  Kate Ehrlich,et al.  Empirical Studies of Programming Knowledge , 1984, IEEE Transactions on Software Engineering.

[21]  R. Stallman EMACS the extensible, customizable self-documenting display editor , 1981, SIGPLAN SIGOA Symposium on Text Manipulation.

[22]  Richard C Waters,et al.  A System for Understanding Mathematical FORTRAN Programs , 1976 .

[23]  Daniel G Shapiro SNIFFER: a System that Understands Bugs. , 1981 .

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

[25]  Marc Eisenstadt,et al.  Domain Specific Debugging Aids for Novice Programmers , 1981, IJCAI.

[26]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[27]  Peter H. Feiler,et al.  An Incremental Programming Environment , 1981, IEEE Transactions on Software Engineering.

[28]  David S. Wile,et al.  Program developments: formal explanations of implementations , 1983, CACM.

[29]  Daniel C Brotsky An Algorithm for Parsing Flow Graphs , 1984 .

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

[31]  Richard C. Waters,et al.  The disciplined use of simplifying assumptions , 1982 .

[32]  Thomas E. Cheatham,et al.  Reusability Through Program Transformations , 1984, IEEE Transactions on Software Engineering.

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

[34]  Thomas W. Reps,et al.  Incremental Context-Dependent Analysis for Language-Based Editors , 1983, TOPL.

[35]  David Chapman A program testing assistant , 1982, CACM.

[36]  James M. Neighbors,et al.  The Draco Approach to Constructing Software from Reusable Components , 1984, IEEE Transactions on Software Engineering.

[37]  Charles Rich,et al.  The Layered Architecture of a System for Reasoning about Programs , 1985, IJCAI.

[38]  David R. Barstow,et al.  An automatic programming system to support an experimental science , 1982, ICSE '82.

[39]  Howard E. Shrobe,et al.  Initial Report on a Lisp Programmer's Apprentice , 1978, IEEE Transactions on Software Engineering.

[40]  Elaine Kant,et al.  Efficiency considerations in program synthesis : a knowledge-based approach , 1979 .

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

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

[43]  Richard C. Holt,et al.  Sre—a syntax recognizing editor , 1985, Softw. Pract. Exp..