• DocumentCode
    2360313
  • Title

    Program understanding as constraint satisfaction

  • Author

    Woods, Steven ; Yang, Qiang

  • Author_Institution
    Dept. of Comput. Sci., Waterloo Univ., Ont., Canada
  • fYear
    1995
  • fDate
    14-16 Jul 1995
  • Firstpage
    314
  • Lastpage
    323
  • Abstract
    The process of understanding a source code in a high-level programming language involves complex computation. Given a piece of legacy code and a library of program plan templates, understanding the code corresponds to building mappings from parts of the source code to particular program plans. These mappings could be used to assist an expert in reverse engineering legacy code, to facilitate software reuse, or to assist in the translation of the source into another programming language. In this paper, we present a model of program understanding using constraint satisfaction. Within this model, we intelligently compose a partial global picture of the source program code by transforming knowledge about the problem domain and the program itself into sets of constraints. We then systematically study different search algorithms and empirically evaluate their performance. One advantage of the constraint satisfaction model is its generality; many previous attempts in program understanding could now be cast under the same spectrum of heuristics, and thus be readily compared. Another advantage is the improvement in search efficiency using various heuristic techniques in constraint satisfaction
  • Keywords
    constraint handling; heuristic programming; reverse engineering; search problems; software libraries; software reusability; complex computation; constraint satisfaction; heuristic techniques; high-level programming language; legacy code; mappings; partial global picture; performance evaluation; problem domain knowledge transformation; program plan template library; program translation; program understanding; search algorithms; search efficiency; software reuse; source code understanding; Artificial intelligence; Computer languages; Computer science; Costs; Debugging; Humans; Intelligent agent; Libraries; Logic programming; Software engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering, 1995., Proceedings of 2nd Working Conference on
  • Conference_Location
    Toronto, Ont.
  • Print_ISBN
    0-8186-711-43
  • Type

    conf

  • DOI
    10.1109/WCRE.1995.514719
  • Filename
    514719