An extensible system for source code analysis

被引:19
作者
Canfora, G
Cimitile, A
De Carlini, U
De Lucia, A
机构
[1] Univ Sannio, Fac Engn, I-82100 Benevento, Italy
[2] Univ Naples Federico II, Dipartimento Informat & Sistemist, I-80125 Naples, Italy
关键词
reverse engineering; code analysis; software maintenance; intermediate program representations; tool generation; integration;
D O I
10.1109/32.713328
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Constructing code analyzers may be costly and error prone ii inadequate technologies and tools are used. If they are written in a conventional programming language, for instance, several thousand lines of code may be required even for relatively simple analyses. One way of facilitating the development of code analyzers is to define a Very high-level domain-oriented language and implement an application generator that creates the analyzers from the specification of the analyses they are intended to perform. This paper presents a system for developing code analyzers that uses a database to store both a no-loss fine-grained intermediate representation and the results of the analyses. The system uses an algebraic representation, called F(p), as the user-visible intermediate representation. Analyzers are specified in a declarative language, called F(p) - I,which enables an analysis to be specified in the form of a traversal of an algebraic expression, with access to, and storage of, the database information the algebraic expression indices. A foreign language interface allows the analyzers to be embedded in C programs. This is useful for implementing the user interface of an analyzer, for example, or to facilitate interoperation of the generated analyzers with pre-existing tools. The paper evaluates the strengths and limitations of the proposed system, and compares it to other related approaches.
引用
收藏
页码:721 / 740
页数:20
相关论文
共 55 条
[1]  
Aho Alfred V., 2007, COMPILERS PRINCIPLES
[2]  
[Anonymous], 1993, REDO COMPENDIUM REVE
[3]   MEASURES OF TESTABILITY AS A BASIS FOR QUALITY ASSURANCE [J].
BACHE, R ;
MULLERBURG, M .
SOFTWARE ENGINEERING JOURNAL, 1990, 5 (02) :86-92
[4]  
Bailes PA, 1996, FOURTH WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, P230, DOI 10.1109/WPC.1996.501137
[5]   INVESTIGATING REVERSE ENGINEERING TECHNOLOGIES FOR THE CAS PROGRAM UNDERSTANDING PROJECT [J].
BUSS, E ;
DEMORI, R ;
GENTLEMAN, WM ;
HENSHAW, J ;
JOHNSON, H ;
KONTOGIANNIS, K ;
MERLO, E ;
MULLER, HA ;
MYLOPOULOS, J ;
PAUL, S ;
PRAKASH, A ;
STANLEY, M ;
TILLEY, SR ;
TROSTER, J ;
WONG, K .
IBM SYSTEMS JOURNAL, 1994, 33 (03) :477-500
[6]  
CALLIS FW, 1991, P C SOFTW MAINT SORR, P120
[7]   A LOGIC-BASED APPROACH TO REVERSE ENGINEERING TOOLS PRODUCTION [J].
CANFORA, G ;
CIMITILE, A ;
DECARLINI, U .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1992, 18 (12) :1053-1064
[8]  
CANTONE G, 1988, 76 DISCSCI U NAPL
[9]   THE C INFORMATION ABSTRACTION SYSTEM [J].
CHEN, YF ;
NISHIMOTO, MY ;
RAMAMOORTHY, CV .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1990, 16 (03) :325-334
[10]  
CHEN YF, 1995, P INT C SOFTW MAINT, P66