Reuse of cliches in the knowledge-based editor

  • Richard C. Waters
Knowledge-Based And Future Programming Environments
Part of the Lecture Notes in Computer Science book series (LNCS, volume 244)


The Knowledge-Based Editor in Emacs (KBEmacs) is the current demonstration system implemented as part of the Programmer's Apprentice project. The purpose of the system is to experiment with a number of AI-based programming support capabilities. It is expected that most of these capabilities will appear in one form or another in the programming environments of the future.

The most important of these capabilities is the reuse of cliches — i.e., the reuse of stereotyped algorithms and other pieces of programming knowledge. Using KBEmacs, a programmer can build up a program rapidly and reliably by selecting various standard algorithms and combining them together. Other key features of KBEmacs include a semantic, as opposed to syntactic, representation for programs and support for an assistant-like interaction between the system and the user.


Control Flow Data Flow Program Generator Plan Formalism High Level Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. R. Balzer, "Transformational Implementation: An Example", IEEE Transactions on Software Engineering V7 #1, 3–13, January 1981.Google Scholar
  2. D. Barstow, "A Perspective on Automatic Programming", AI Magazine, V5 #1, 5–27, Spring 1984.Google Scholar
  3. S. Fickas, "Automating the Transformational Development of Software", IEEE Transactions on Software Engineering V11 #11, 1268–1277, November 1985.Google Scholar
  4. C. Green and S. Westfold, "Knowledge-Based Programming Self-Applied", Machine Intelligence 10, J. Hayes, D. Mitchie, and Y. Pao eds., Wiley, 339–359, 1982.Google Scholar
  5. J. Neighbors, "The Draco Approach to Constructing Software from Reusable Components", IEEE Transactions on Software Engineering V10 #5, 564–573, September 1984.Google Scholar
  6. C. Rich, "A Formal Representation for Plans in the Programmer's Apprentice", 7th IJCAI, 1044–1052, August 1981.Google Scholar
  7. C. Rich, "The Layered Architecture of a System for Reasoning about Programs", 9th IJCAI, 540–546, August 1985.Google Scholar
  8. C. Rich and H. Shrobe, "Initial Report on a Lisp Programmer's Apprentice", IEEE Transactions on Software Engineering V4 #6, 456–466, November 1978.Google Scholar
  9. R. Waters, "The Programmers Apprentice: A Session with KBEmacs" IEEE Transactions on Software Engineering V11 #11, 1296–1320, November 1985.Google Scholar
  10. D. Wile, "Program Developments: Formal Explanations of Implementations", Communications of the ACM V26 #11, 902–911, November 1983.Google Scholar
  11. Zetalisp, Lisp Machine documentation (release 4), Cambridge MA, Symbolics Inc., 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Richard C. Waters
    • 1
  1. 1.MIT Artificial Intelligence LaboratoryCambridgeUSA

Personalised recommendations