Program representation and behavioural matching for localizing similar code fragments

  • Authors:
  • Kostas Kontogiannis

  • Affiliations:
  • McGill University, Montréal, Canada

  • Venue:
  • CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
  • Year:
  • 1993

Quantified Score

Hi-index 0.00

Visualization

Abstract

Reverse engineering focuses on the development of tools and techniques for understanding unfamiliar code. The main objective in design recovery is to understand program behavior. In order to understand the behavioral aspects of a program, concepts of language semantics and flow analysis can be used. In this paper we consider a program representation method in which communication of a code fragment with the rest of the system represents its behavior. Code fragments are viewed as objects capable of using resources and updating variables. Program similarity between simple code fragments can be proven in terms of the structure and the information residing in the nodes of program description trees. Program description trees are labeled trees in which nodes represent either code fragments or actions encoding the communication of a code fragment. Recognition and control algorithms for plan instance localization and recognition are investigated in order to assist partial design recovery when no complete recognition is possible. Finally, we discuss the underlying " Goal-Question-Analysis-Action" strategy for modeling the design recovery.