[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/227726.227731acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free access

The program understanding problem: analysis and a heuristic approach

Published: 01 May 1996 Publication History

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.

References

[1]
Sandra Carberry. Modeling the user's plans and goals. Computational Linguistics, 14(3):23-37, 1988.
[2]
Prem Devanbu and Laura Eaves. Gen++ -an analyzer generator for c++ programs. Technical report, AT& T Bell Labs, New Jersey, 1994.
[3]
Michael R. Garey and David S. Johnson. Computers and Intractability: A guide to the theory of NP- Completeness. W. H. Freeman and Company, Bell Laboratories, Murray Hill, New Jersey, 1979.
[4]
Henry Kautz and James Allen. Generalized plan recognition. In Proceedings of the Fijth National Conference on Art@cial Intelligence, pages 32-37, Philadelphia, Pennsylvania, 1986.
[5]
Wojtek Kozaczynski and Jim Q. Ning. Automated program understanding by concept recognition. Automated SofWare Engineering, 1:61-78, 1994.
[6]
Vipin Kumar. Algorithms for constraint-satisfaction problems. AI Magazine, pages 32-44, Spring 1992.
[7]
A.K. Mackworth. Consistency in networks of relations. Artificial Intelligence, 8:99-1 18, 1977.
[8]
H. Muller, K. Wong, and S.R. Tilley. Understanding software systems using reverse engineering technology. In Proceedings of the Colloquim on Object Orientation in Databases and SofWare Enginenng, pages 88-98, December 1994.
[9]
Alex Quilici. A memory-based approach to recognizing programming plans. Communications of the ACM, 37(5):84-93, May 1994.
[10]
Alex Quilici and David Chin. DECODE: A cooperative environment for reverse-engineering legacy software. In Proceedings of the Second Working Conference on Reverse-Engineering, pages 156-165. IEEE Computer Society Press, July 1995.
[11]
C. Rich and R.C. Waters. The programmer's apprentice. Addison-Wesley, Reading, Mass., 1990.
[12]
P. Van Hentenryck, Y. Deville, and C-M. Teng. A generic arc-consistency algorithm and its specializations. Artificial Intelligence, 57:291-321, 1992.
[13]
L. M. Wills. Automated program recognition: A feasibility demonstration. Artificial Intelligence, 45(2): 113-172, February 1990.
[14]
L. M. Wills. Automated program recognition by Graph Parsing. PhD thesis, MIT, July 1992.
[15]
Steven Woods and Alex Quilici. Representing memory-based program understanding as constraint satisfaction. Technical report, University of Water- 100, Department of Computer Science, 1995.
[16]
Steven Woods, Alex Quilici, and Qiang Yang. Program understanding and plan recognition: reasoning under different assumptions. Technical report, University of Waterloo, Department of Computer Science, 1995.
[17]
Steven Woods and Qiang Yang. Constraintbased plan recognition in legacy code. Working Notes of the Third Workshop on AI and Software Engineering : Breaking the Toy Mold (ALSE), August 1995.
[18]
Steven Woods and Qiang Yang. Program understanding as constraint satisfaction. In Proceedings of the IEEE Seventh International Workshop on Computer- Aided Software Engineering (CASE), pages 3 18-327, July 1995.
[19]
Steven Woods and Qiang Yang. Program understanding as constraint satisfaction: Representation and reasoning techniques. Technical report, University of Waterloo, Department of Computer Science, 1995.

Cited By

View all
  • (2008)Algorithm recognition by static analysis and its application in students' submissions assessmentProceedings of the 8th International Conference on Computing Education Research10.1145/1595356.1595372(88-91)Online publication date: 13-Nov-2008
  • (2008)Improving program comprehension by combining code understanding with comment understandingKnowledge-Based Systems10.1016/j.knosys.2008.03.03321:8(813-825)Online publication date: 1-Dec-2008
  • (2006)Context-sensitive domain-independent algorithm composition and selectionProceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1133981.1134003(181-192)Online publication date: 11-Jun-2006
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '96: Proceedings of the 18th international conference on Software engineering
May 1996
590 pages
ISBN:0818672463

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 01 May 1996

Check for updates

Author Tags

  1. CSPs
  2. NP hard
  3. complex source code
  4. computational complexity
  5. conceptual models
  6. constraint handling
  7. constraint propagation
  8. constraint satisfaction problems
  9. formal complexity results
  10. heuristic approach
  11. heuristic solutions
  12. problem solving model
  13. program understanding problem
  14. reverse engineering
  15. search algorithms
  16. search problems

Qualifiers

  • Article

Conference

ICSE96
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)49
  • Downloads (Last 6 weeks)6
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2008)Algorithm recognition by static analysis and its application in students' submissions assessmentProceedings of the 8th International Conference on Computing Education Research10.1145/1595356.1595372(88-91)Online publication date: 13-Nov-2008
  • (2008)Improving program comprehension by combining code understanding with comment understandingKnowledge-Based Systems10.1016/j.knosys.2008.03.03321:8(813-825)Online publication date: 1-Dec-2008
  • (2006)Context-sensitive domain-independent algorithm composition and selectionProceedings of the 27th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/1133981.1134003(181-192)Online publication date: 11-Jun-2006
  • (2006)Context-sensitive domain-independent algorithm composition and selectionACM SIGPLAN Notices10.1145/1133255.113400341:6(181-192)Online publication date: 11-Jun-2006
  • (2005)An empirical validation of complexity profile graphProceedings of the 43rd annual ACM Southeast Conference - Volume 110.1145/1167350.1167395(143-149)Online publication date: 18-Mar-2005
  • (2001)An Approach for Recovering Distributed System ArchitecturesAutomated Software Engineering10.1023/A:10112177208608:3-4(311-354)Online publication date: 1-Aug-2001
  • (1999)Using an Artificial Intelligence Approach to Build an Automated Program Understanding/Fault Localization ToolProceedings of the 11th IEEE International Conference on Tools with Artificial Intelligence10.5555/850950.853651Online publication date: 8-Nov-1999
  • (1998)Program Understanding as Constraint SatisfactionAutomated Software Engineering10.1023/A:10086552307365:2(147-181)Online publication date: 1-Apr-1998
  • (1998)Applying Plan Recognition Algorithms To Program UnderstandingAutomated Software Engineering10.1023/A:10086088253905:3(347-372)Online publication date: 1-Jul-1998
  • (1997)Fast detection of communication patterns in distributed executionsProceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research10.5555/782010.782022Online publication date: 10-Nov-1997
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media