ACM Home Page
Please provide us with feedback. Feedback
Behavioral similarity matching using concrete source code templates in logic queries
Full text PdfPdf (515 KB)
Source
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation archive
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation table of contents
Nice, France
SESSION: Meta-programming table of contents
Pages: 92 - 101  
Year of Publication: 2007
ISBN:978-1-59593-620-2
Authors
Coen De Roover  Vrije Universiteit Brussel, Belgium
Theo D'Hondt  Vrije Universiteit Brussel, Belgium
Johan Brichau  Université catholique de Louvain, Belgium
Carlos Noguera  INRIA - Futurs, France
Laurence Duchien  INRIA - Futurs, France
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 37,   Citation Count: 2
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1244381.1244398
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
2
 
3
 
4
M. d'Amorim, C. Nogueira, G. Santos, A. Souza, and P. Borba. Integrating code generation and refactoring. In Proc. of the ECOOP Workshop on Generative Programming, 2002.
5
 
6
 
7
S. Ducasse, M. Freidig, and R. Wuyts. Logic and trace-based object-oriented application testing. In Proc. of the Int. Workshop on Object-Oriented Reengineering, 2004.
 
8
J. Fabry and T. Mens. Language-independent detection of object-oriented design patterns. Elsevier Int. Journal on Computer Languages, Systems & Structures, 30(1-2):21--33, 2004.
 
9
P. Flach. Simply Logical. John Wiley, 1994.
 
10
 
11
E. Hajiyev, M. Verbaere, and O. de Moor. Codequest: Scalable source code queries with datalog. In Proc. of the 20th European Conf. on Object-Oriented Programming, volume 4067 of Lecture Notes in Computer Science, pages 2--27, Berlin, Germany, 2006. Springer.
12
13
 
14
 
15
 
16
O. Lhoták. Spark: A flexible points-to analysis framework for Java. Master's thesis, McGill University, December 2002.
17
 
18
K. Mens, I. Michiels, and R. Wuyts. Supporting software development through declaratively codified programming patterns. In Proc. of the 13th Int. Software Engineering and Knowledge Engineering Conf., 2001.
 
19
C. Noguera and R. Pawlak. Open static pointcuts through source code templates. In Proc. of the AOSD Workshop on Open and Dynamic Aspect Languages, 2006.
20
 
21
B. G. Ryder. Dimensions of precision in reference analysis of object-oriented programming languages. In Proc. of the 12th Int. Conf. on Compiler Construction, volume 2622, pages 126--137, 2003.
 
22
The Smalltalk Open Unification Language (SOUL). http://prog.vub.ac.be/SOUL/.
 
23
M. A. Tobias Rho, Günter Kniesel. Fine-grained generic aspects. In Proc. of the AOSD Workshop on Foundations of Aspect-Oriented Languages. 2006.
 
24
 
25
R. Wuyts. A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation. PhD thesis, Vrije Universiteit Brussel, Belgium, January 2001.


Collaborative Colleagues:
Coen De Roover: colleagues
Theo D'Hondt: colleagues
Johan Brichau: colleagues
Carlos Noguera: colleagues
Laurence Duchien: colleagues