---
title: "A Knowledge-Based Program Editor"
authors:
  - "Richard C. Waters"
doi: ""
url: "https://ijcai.org/proceedings/1981/175"
pdf: "https://ijcai.org/proceedings/1981/0175.pdf"
venue: "Proceedings of the Seventh International Joint Conference on Artificial Intelligence"
year: 1981
pages: "920-925"
track: "Programming Environments"
keywords:
---

# A Knowledge-Based Program Editor

Richard C. Waters

*Proceedings of the Seventh International Joint Conference on Artificial Intelligence*, pages 920-925.

## Abstract

This paper describes an initial implementation of an interactive programming as sistant system called the Programmer's Apprentice (PA). The PA . is designed to be midway between an improved programming methodology and an automatic programming system. The intention is that the progr amroer will do I he hard parts of design and implementat ion while the PA will assist him wherever poss ible. One of The major underpinnings of the PAis a representation (called a plan) for programs which abstracts away from the inessent i al feature s of a program, and represents the basic logical properties of the algor i thm explicitly. The current system is composed of four parts: an analyzer that can construct the plan for a program; a coder that can create program text corresponding to a plan; a library of plans lor common algorithmic fragments; and a plan editor which mal<.es it possible for a programmer to modify a program by modifying its plan. The greatest lever age provided by I he system comes from the fact I hat a programmer can rapidly and accurately build up a program by referring to the fragments in the library and from the fact that the editor provides commands specifically designed to facilitate program modificat i on .
