knowledge-based program understanding is widely known as one of the key issues in programming education support systems and environments for novices. Most program understanders, however, have limitations. One of them ...
详细信息
knowledge-based program understanding is widely known as one of the key issues in programming education support systems and environments for novices. Most program understanders, however, have limitations. One of them is an ability to dear with a single programming language, while human tutors can comprehend plural languages by means of generalized knowledge on programming languages and techniques. This paper proposes the concepts and methodology of the knowledge-based program understander ALPUS II, which deals with plural programming languages, i.e., Pascal and C, by means of generalized abstract syntax AL and knowledge representations based on it. ALPUS II is an extension of ALPUS, which dealt with a single programming language Pascal, and is a sub-system of an intelligent programming environment INTELLITUTOR. The INTELLITUTOR system consists of a guided programming editor GUIDE and a knowledge-based program understander ALPUS II, and is available on the Internet. In the process of comprehension source statements written in Pascal or C are translated into AL representation first. Since the contents of the programming knowledge bases are adjusted to deal with the AL representations the program comprehension procedure is available for both Pascal and C. It is possible to append other programming languages by simply attaching a transformation module for each additional procedural language. It is noted that knowledge acquisition tasks for additional languages are not needed since the contents of the knowledge base are generalized for multiple use. The INTELLITUTOR system was implemented in the frame-based knowledge engineering environment ZERO on a UNIX server machine in the Internet environment. ALPUS II demonstrates interesting features in program comprehension for the C language by means of the transformed knowledge from the already available knowledge for Pascal, which was developed for ALPUS, in a feasibility study. The current Version of ALPUS II supports almost
The background concepts and methodologies of the knowledge-based program understander ALPUS is discussed. ALPUS understands user's buggy Pascal programs using four kinds of programming knowledge: the knowledge on ...
详细信息
The background concepts and methodologies of the knowledge-based program understander ALPUS is discussed. ALPUS understands user's buggy Pascal programs using four kinds of programming knowledge: the knowledge on algorithms, programming techniques, the Pascal language, and logical bugs. The knowledge on algorithms, the key knowledge, is a form of hierarchical data structure called Procedure Graph (HPG). In HPG each node represents a chunk of operations called ''process,'' which is consisted of sub-processes. The other knowledge is maintained as independent knowledge bases and linked to associated processes of the HPG. The knowledge about bugs acquired by cognitive experiment is grouped into three categories: bugs on algorithms, programming techniques, and the Pascal language, and connected to associated elements of programming knowledge respectively. ALPUS tries to understand user's buggy programs, detects logical bugs, infers user's intentions, and gives advices for fixing bugs. Program understanding is achieved by three steps: normalization, variable identification, and process and technique identification. Normalization results in improving flexibility of understanding. Variable, process and technique identifications are achieved by knowledge-based pattern matching. Intentions are inferred by means of information attached to buggy patterns. The result of comprehension is reported to a user (i.e., student). Experimental results using Quicksort programs written by students show that the HPG formalism is quite powerful in understanding algorithm-oriented programs. The ALPUS's way of program comprehension is useful in the situation of programming education in an intermediate class of an engineering school. The ALPUS system is a subsystem of the intelligent programming environment INTELLITUTOR for learning programming, which was implemented in the frame-based knowledge engineering environment ZERO on a UNIX workstation.
This paper discusses the experimental evaluation of the knowledge-based program understander ALPUS and methods of program normalization based on the evaluation to improve the flexibility of the system performance. ALP...
详细信息
This paper discusses the experimental evaluation of the knowledge-based program understander ALPUS and methods of program normalization based on the evaluation to improve the flexibility of the system performance. ALPUS comprehends students' buggy Pascal programs using four kinds of programming knowledge, detects logical bugs, infers user's intentions and gives advice for fixing bugs. By means of the combination of the pattern matching technique and the HPG-based formalism of programming knowledge in addition to program normalization high performance of comprehension has been achieved for relatively complex programs such as Quick-sort programs. The experimental evaluation told that program normalization would solve some 55% of unsucceeded student programs. Program normalization has contributed both in decreasing the number of knowledge patterns and increasing the flexibility. This paper proposes a five-step normalization procedure which works well in an experimental situation.
暂无评论