DocumentCode
3408344
Title
The program understanding problem: analysis and a heuristic approach
Author
Woods, Steven ; Yang, Qiang
Author_Institution
Dept. of Comput. Sci., Waterloo Univ., Ont., Canada
fYear
1996
fDate
25-29 Mar 1996
Firstpage
6
Lastpage
15
Abstract
Program understanding is the process of making sense of a complex source code. This process has been considered as computationally difficult and conceptually complex. So far no formal complexity results have been presented, and conceptual models differ from one researcher to the next. We formally prove that program understanding is NP hard. Furthermore, we show that even a much simpler subproblem remains NP hard. However we do not despair by this result, but rather offer an attractive problem solving model for the program understanding problem. Our model is built on a framework for solving constraint satisfaction problems, or CSPs, which are known to have interesting heuristic solutions. Specifically, we can represent and heuristically address previous and new heuristic approaches to the program understanding problem with both existing and specially designed constraint propagation and search algorithms
Keywords
computational complexity; constraint handling; reverse engineering; search problems; CSPs; NP hard; complex source code; conceptual models; constraint propagation; constraint satisfaction problems; formal complexity results; heuristic approach; heuristic solutions; problem solving model; program understanding problem; search algorithms; Algorithm design and analysis; Artificial intelligence; Computer languages; Computer science; Libraries; Problem-solving;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Engineering, 1996., Proceedings of the 18th International Conference on
Conference_Location
Berlin
ISSN
0270-5257
Print_ISBN
0-8186-7247-1
Type
conf
DOI
10.1109/ICSE.1996.493397
Filename
493397
Link To Document