Publication | Closed Access
The program understanding problem: analysis and a heuristic approach
18
Citations
10
References
2002
Year
Unknown Venue
EngineeringSoftware EngineeringNp HardComplex Source CodeSoftware AnalysisConstraint ProgrammingConstraint SolvingCombinatorial OptimizationAutomatic ProgrammingProgram UnderstandingProgram Understanding ProblemComputer ScienceSoftware DesignInteger ProgrammingAutomated ReasoningProgram AnalysisProgram ComprehensionFormal MethodsProgram SynthesisProgramming Methodology
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.
| Year | Citations | |
|---|---|---|
Page 1
Page 1