A Hybrid Approach for Program Understanding Based on Graph Parsing and Expectation-Driven Analysis

Program understanding is an important part ofthe domain expertise required for programming language tutoring systems. However, the understanding ofstudent programs by a computer is extremely difficult because ofthe tremendous scope of variability in student solutions for nontrivial tasks. This article aims to handle such variability and improve understanding performance by a hybrid approach based on two complementary methods of graph parsing and expectation-driven analysis. The graph parsing method by Wills is utilized to recognize the programming plans in the code. At the same time, a new expectation-driven analysis is devised to generate expectations about the program design using such knowledge as the programming goals, plans, and information about the problem task. The analysis guides the plan recognition process through confirming, amending, or rejecting the expectations by checking them against the given code. Expectation-driven analysis can recognize the function and implementation level variations...

[1]  Rudi Lutz,et al.  Towards an intelligent debugging system for Pascal programs : on the theory and algorithms of plan recognition in Rich's plan calculus , 1993 .

[2]  Jean-Pierre H. Laurent,et al.  LAURA, A System to Debug Student Programs , 1980, Artif. Intell..

[3]  John Edwin Hartman,et al.  Automatic Control Understanding for Natural Programs , 1991 .

[4]  김선만,et al.  Program understanding by integrated application of graph parsing and expectation-driven analysis = 그래프파싱과 기대기반분석의 통합 적용에 의한 프로그램 이해방법론 , 1997 .

[5]  Paul Mulholland,et al.  Teaching Programming at a Distance: The Internet Software Visualization Laboratory , 1997 .

[6]  F. J. Lukey Understanding and Debugging Simple Computer Programs , 1978 .

[7]  William R. Murray,et al.  Automatic program debugging for intelligent tutoring systems , 1987, Comput. Intell..

[8]  Linda M. Wills,et al.  Automated Program Recognition: A Feasibility Demonstration , 1987, Artif. Intell..

[9]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[10]  Lori A. Clarke,et al.  Applications of symbolic evaluation , 1985, J. Syst. Softw..

[11]  Zohar Manna,et al.  Logical analysis of programs , 1976, CACM.

[12]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[13]  Lee A. Gladwin,et al.  Intention-Based Diagnosis of Novice Programming Errors , 1987, IEEE Expert.

[14]  Daniel C Brotsky An Algorithm for Parsing Flow Graphs , 1984 .

[15]  Marc Eisenstadt,et al.  Domain Specific Debugging Aids for Novice Programmers , 1981, IJCAI.

[16]  Dean Allemang,et al.  Understanding programs as devices , 1990 .

[17]  F. J. Lukey Understanding and debugging programs , 1980 .

[18]  Linda Mary Wills,et al.  Automated program recognition by graph parsing , 1992 .

[19]  Linda M. Wills,et al.  Flexible control for program recognition , 1993, [1993] Proceedings Working Conference on Reverse Engineering.