A Comparative Study of Code Query Technologies

被引:4
作者
Alves, Tiago L.
Hage, Jurriaan
Rademaker, Peter
机构
来源
11TH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2011) | 2011年
关键词
Code query; software analysis; comparative study; Grok; Rscript; JRelCal; SemmleCode; JGraLab; CrocoPat; JTransformer;
D O I
10.1109/SCAM.2011.14
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
When analyzing software systems we face the challenge of how to implement a particular analysis for different programming languages. A solution for this problem is to write a single analysis using a code query language, abstracting from the specificities of languages being analyzed. Over the past ten years many code query technologies have been developed, based on different formalisms. Each technology comes with its own query language and set of features. To determine the state of the art of code querying we compare the languages and tools for seven code query technologies: Grok, Rscript, JRelCal, SemmleCode, JGraLab, CrocoPat and JTransformer. The specification of a package stability metric is used as a running example to compare the languages. The comparison involves twelve criteria, some of which are concerned with properties of the query language (paradigm, types, parametrization, polymorphism, modularity, and libraries), and some of which are concerned with the tool itself (output formats, interactive interface, API support, interchange formats, extraction support, and licensing). We contextualize the criteria in two usage scenarios: interactive and tool integration. We conclude that there is no particularly weak or dominant tool. As important improvement points, we identify the lack of library mechanisms, interchange formats, and possibilities for integration with source code extractors.
引用
收藏
页码:145 / 154
页数:10
相关论文
共 33 条
[1]  
Alves T., 2011, UUCS2011009 DEP INF
[2]  
Alves T. L., 2008, QTAPC 08
[3]  
[Anonymous], PRO GRES APPROACH LA
[4]   Efficient relational calculation for software analysis [J].
Beyer, D ;
Noack, A ;
Lewerentz, C .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) :137-149
[5]  
Beyer D., 2006, 28th International Conference on Software Engineering Proceedings, P807, DOI 10.1145/1134285.1134420
[6]  
Beyer D., 2003, I042003 BRAND TU COT
[7]  
Bildhauer D., 2008, QTAPC 08
[8]  
Ceri S., 1989, IEEE Transactions on Knowledge and Data Engineering, V1, P146, DOI 10.1109/69.43410
[9]  
CODD EF, 1970, COMMUN ACM, V13, P377, DOI 10.1145/357980.358007
[10]  
de Moor O., 2007, PEPM 07, P91