Computer
The programmer's apprentice
A memory-based approach to recognizing programming plans
Communications of the ACM
Signature matching: a tool for using software libraries
ACM Transactions on Software Engineering and Methodology (TOSEM)
The program understanding problem: analysis and a heuristic approach
Proceedings of the 18th international conference on Software engineering
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
The Fuzzy Systems Handkbook with Cdrom
The Fuzzy Systems Handkbook with Cdrom
Artificial Intelligence and the Design of Expert Systems
Artificial Intelligence and the Design of Expert Systems
Automated Chunking to Support Program Comprehension
WPC '97 Proceedings of the 5th International Workshop on Program Comprehension (WPC '97)
A Role for Chunking and Fuzzy Reasoning in a Program Comprehension and Debugging Tool
ICTAI '97 Proceedings of the 9th International Conference on Tools with Artificial Intelligence
Applying fuzzy reasoning to plan retrieval in a knowledgebased program understanding/fault localization system
Hi-index | 0.00 |
Artificial intelligence techniques, and architectures have played a large role in the design of a blackboard-based program understanding/fault localization tool we have been developing. In this paper we focus on a system knowledge source called the Plan Processor which will have artificial intelligence support for two of its major tasks. One task is to retrieve a set of program plans from a plan library using indices called signatures. To make this retrieval task more effective we propose using a genetic algorithm. We also describe a fuzzy reasoning component which supports the Plan Processor with a second task; ranking the retrieved plans in order of similarity to the target code. The most similar plan is then used for the complex plan/code matching required for automated program understanding. Our approach may eliminate the need for exhaustive plan library searches, and could lead to automated program understanders that scale up for use on software systems from a variety of problem domains.