Behavioral similarity matching using concrete source code templates in logic queries

Coen De Roover, Theo D'Hondt, Johan Brichau, Carlos Noguera, Laurence Duchien
2007 Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation - PEPM '07  
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
more » ... 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 callgraphs, 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.
doi:10.1145/1244381.1244398 dblp:conf/pepm/RooverDBND07 fatcat:q7w27yqtjng7bhdew4a52qax4y