Behavioral similarity matching using concrete source code templates in logic queries

  • Authors:
  • Coen De Roover;Theo D'Hondt;Johan Brichau;Carlos Noguera;Laurence Duchien

  • Affiliations:
  • Vrije Universiteit Brussel, Belgium;Vrije Universiteit Brussel, Belgium;Université catholique de Louvain, Belgium;INRIA - Futurs, France;INRIA - Futurs, France

  • Venue:
  • Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Program query languages and pattern-detection techniques are an essential part of program analysis and manipulation systems. Queries and patterns permit the identification of the parts of interest in a program's implementation through a representation dedicated to the intent of the system (e.g. call-graphs to detect behavioral flaws, abstract syntax trees for transformations, concrete source code to verify programming conventions, etc). This requires that developers understand and manage all the different representations and techniques in order to detect various patterns of interest. To alleviate this overhead, we present a logic-based language that allows the program's implementation to be queried using concrete source code templates. The queries are matched against a combination of structural and behavioral program representations, including call-graphs, points-to analysis results and abstract syntax trees. The result of our approach is that developers can detect patterns in the queried program using source code excerpts (embedded in logic queries) which act as prototypical samples of the structure and behavior they intend to match.