{"type":"ScholarlyArticle","title":"A Knowledge-Based Program Editor","authors":[{"name":"Richard C. Waters","slug":"richard-c-waters","given":"Richard C.","family":"Waters","affiliation":""}],"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 .","doi":null,"url":"https://ijcai.org/proceedings/1981/175","pdf":"https://ijcai.org/proceedings/1981/0175.pdf","markdown":"https://ijcai.org/proceedings/1981/175.md","bibtex":"https://ijcai.org/proceedings/1981/bibtex/175","volume":{"slug":"1981","title":"Proceedings of the Seventh International Joint Conference on Artificial Intelligence","short_title":"IJCAI 1981","url":"https://ijcai.org/proceedings/1981/","year":1981,"location":"Vancouver, British Columbia, Canada","dates":"24-28 August 1981","editors":"Roger C. Schank","isbn":"","publisher":"International Joint Conferences on Artificial Intelligence","doi_prefix":""},"section":"Programming Environments","track":"Programming Environments","number":175,"pages":{"first":920,"last":925},"keywords":[],"videos":[],"references":[],"license_note":"Copyright International Joint Conferences on Artificial Intelligence."}