PROUST: Knowledge-Based Program Understanding
- 1 March 1985
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. SE-11 (3), 267-275
- https://doi.org/10.1109/tse.1985.232210
Abstract
This paper describes a program called PROUST which does on-line analysis and understanding of Pascal written by novice programmers. PROUST takes as input a program and a nonalgorithmic description of the program requirements, and finds the most likely mapping between the requirements and the code. This mapping is in essence a reconstruction of the design and implementation steps that the programmer went through in writing the program. A knowledge base of programming plans and strategies, together with common bugs associated with them, is used in constructing this mapping. Bugs are discovered in the process of relating plans to the code; PROUST can therefore give deep explanations of program bugs by relating the buggy code to its underlying intentions.Keywords
This publication has 6 references indexed in Scilit:
- Cognitive strategies and looping constructsCommunications of the ACM, 1983
- Uncovering principles of novice programmingPublished by Association for Computing Machinery (ACM) ,1983
- Collecting and analyzing on-line protocols from novice programmersBehavior Research Methods, 1982
- Tapping into tacit programming knowledgePublished by Association for Computing Machinery (ACM) ,1982
- A structured planning and debugging environment for elementary programmingInternational Journal of Man-Machine Studies, 1979
- The genetic graph: a representation for the evolution of procedural knowledgeInternational Journal of Man-Machine Studies, 1979