|
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
|
Chris Allan , Pavel Avgustinov , Aske Simon Christensen , Laurie Hendren , Sascha Kuzins , Ondřej Lhoták , Oege de Moor , Damien Sereni , Ganesh Sittampalam , Julian Tibble, Adding trace matching with free variables to AspectJ, Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, October 16-20, 2005, San Diego, CA, USA
|
 |
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
|
James Gosling , Bill Joy , Guy Steele , Gilad Bracha, Java Language Specification, Second Edition: The Java Series, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2000
|
| |
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
|
Yoann Padioleau , René Rydhof Hansen , Julia L. Lawall , Gilles Muller, Semantic patches for documenting and automating collateral evolutions in Linux device drivers, Proceedings of the 3rd workshop on Programming languages and operating systems: linguistic support for modern operating systems, p.10-es, October 22-22, 2006, San Jose, California
[doi> 10.1145/1215995.1216005]
|
| |
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.
|
|