Abstract
The long-term goal of the Programmer's Apprentice project is to develop a theory of how expert programmers analyze, synthesize, modify, explain, specify, verify, and document programs. The authors present their vision of the Programmer's Apprentice, the principles and techniques underlying it, and their progress toward it. The primary vehicle for this exposition is three scenarios illustrating the use of the Apprentice in three phases of the programming task: implementation, design, and requirements. The first scenario is taken from a completed working prototype. The second and third scenarios are the targets for prototype systems currently under construction
- 1. C. Rich and R.C. Waters, "Automatic Programming: Myths and Prospects," Computer , Vol. 21, No. 8, Aug. 1988, pp. 40-51. Google Scholar
- 2. E. Soloway and K. Ehrlich, "Empirical Studies of Programming Knowledge," IEEE Trans. Software Eng., Vol. 10, No. 5, Sept. 1984, pp. 595-609.Google Scholar
Digital Library
- 3. K.E. Huff and V.R. Lesser, "A Plan-Based Intelligent Assistant That Supports the Process of Programming," Proc. Third Symp. Software Development Environments, ACM, New York, Nov. 1988. Google Scholar
- 4. C. Rich, "A Formal Representation for Plans in the Programmer's Apprentice," Proc. Seventh Int'l Joint Conf. Artificial Intelligence, Morgan Kaufmann, Los Altos, Calif., 1981, pp. 1,044-1,052.Google Scholar
- 5. L.M. Wills, "Automated Program Recognition," Tech. Report 904 (master's thesis), Artificial Intelligence Lab, Massachusetts Inst. of Technology, Sept. 1986. Google Scholar
- 6. C. Rich, "The Layered Architecture of a System for Reasoning About Programs," Proc. Ninth Int'l Joint Conf. Artificial Intelligence, Morgan Kaufmann, Los Altos, Calif., 1985, pp. 540-546.Google Scholar
- 7. R.C. Waters, "The Programmer's Apprentice: A Session with KBEmacs," IEEE Trans. Software Eng., Vol. 11, No. 11, Nov. 1985, pp. 1,296-1,320. Google Scholar
- 8. C. Green and D.R. Barstow, "On Program Synthesis Knowledge," Artificial Intelligence , Vol. 10, No. 3, Nov. 1978, pp. 241-279.Google Scholar
Digital Library
- 9. C. Rich and R.C. Waters, "The Programmer's Apprentice: A Program Design Scenario," Memo 933A, Artificial Intelligence Lab, Massachusetts Inst. of Technology, Nov. 1987. Google Scholar
- 10. C. Rich, R.C. Waters, and H.B. Reubenstein, "Toward a Requirements Apprentice," Proc. Fourth Int'l Workshop Software Specifications and Design, IEEE-CS Press, Los Alamitos, Calif., Apr. 1987, pp. 79-86.Google Scholar
- 11. J.M. Wing, "A Study of 12 Specifications of the Library Problem," IEEE Software, Vol. 5, No. 4, July 1988, pp. 66-76. Google Scholar
Digital Library
- 12. R.I. Kuper, "Automated Techniques for the Localization of Software Bugs," Tech. Report 1053 (master's thesis), Artificial Intelligence Lab, Massachusetts Inst. of Technology, May 1988. Google Scholar
- 13. R.C. Waters, "Program Translation Via Abstraction and Reimplementation," IEEE Trans. Software Eng., Vol. 14, No. 8, Aug. 1988, pp. 1,207-1,228. Google Scholar
Digital Library
- 14. R.C. Waters, "Using Obviously Synchronizable Series Expressions Instead of Loops," Proc. 1988 IEEE Int'l Conf. Computer Languages, IEEE-CS Press, Los Alamitos, Calif., Oct. 1988.Google Scholar
Index Terms
The Programmer's Apprentice: A Research Overview




Comments