|
ABSTRACT
Code analysis tools provide support for such software engineering tasks as program understanding, software metrics, testing, and reengineering. In this article we describe GENOA, the framework underlying application generators such as Aria and GEN++ which have been used to generate a wide range of practical code analysis tools. This experience illustrates front-end retargetability of GENOA; we describe the features of the GENOA framework that allow it to be used with different front ends. While permitting arbitrary parse tree computations, the GENOA specification language has special, compact iteration operators that are tuned for expressing simple, polynomial-time analysis programs; in fact, there is a useful sublanguage of the GENOA language that can express precisely all (and only) polynomial-time (PTIME) analysis programs on parse trees. Thus, we argue that the GENOA language is a simple and convenient vehicle for implementing a range of analysis tools. We also argue that the “front-and reuse” approach of GENOA offers an important advantage for tools aimed at large software projects: the reuse of complex, expensive build procedures to run generated tools over large source bases. In this article, we describe the GENOA framework and our experiences with it.
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
|
BASILI, V., BRIAND, L., AND MELO, W. 1995. Measuring the impact of reuse on quality and productivity in object-oriented systems. Tech. Rep. CS-TR-3395. Department of Computer Science, University of Maryland, College Park, MD.
|
 |
3
|
|
 |
4
|
P. Borras , D. Clement , Th. Despeyroux , J. Incerpi , G. Kahn , B. Lang , V. Pascual, Centaur: the system, Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments, p.14-24, November 28-30, 1988, Boston, Massachusetts, United States
|
| |
5
|
CHEN, Y. F. AND RAMAMOORTHY, C.V. 1986. The C information abstractor. In Proceedings of the lOth International IEEE on Computer Software and Applications Conference (COMP- SAC, Chicago, IL, Oct.). IEEE Press, Piscataway, NJ.
|
| |
6
|
|
| |
7
|
CLEAVELAND, J. C. AND KINTALA, C. 1988. Tools for building applications generators. AT&T Tech. J. 67, 4.
|
 |
8
|
|
| |
9
|
|
| |
10
|
CREW, R. F. 1997. Astlog: A language for examining abstract syntax trees. In Proceedings of 1st Usenix Conference on Domain-Specific Languages (Oct.). USENIX Assoc., Berkeley, CA.
|
| |
11
|
|
| |
12
|
DEVANBU, P. 1998. The gen+ + page. University of California at Davis, Davis, CA. http://seclab.cs.ucdavis.edu/~devanbu/genp
|
 |
13
|
|
| |
14
|
Prem Devanbu , Sakke Karstu , Walcélio Melo , William Thomas, Analytical and empirical evaluation of software reuse metrics, Proceedings of the 18th international conference on Software engineering, p.189-199, March 25-29, 1996, Berlin, Germany
|
 |
15
|
|
| |
16
|
|
| |
17
|
GRASS, J. AND CHEN, Y. F. 1990. The C + + information abstractor. In Proceedings of the 2nd USENIX on USENIX C+ + Conference (Apr.). USENIX Assoc., Berkeley, CA.
|
 |
18
|
Robert W. Gray , Steven P. Levi , Vincent P. Heuring , Anthony M. Sloane , William M. Waite, Eli: a complete, flexible compiler construction system, Communications of the ACM, v.35 n.2, p.121-130, Feb. 1992
[doi> 10.1145/129630.129637]
|
| |
19
|
|
| |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
|
 |
24
|
|
| |
25
|
|
| |
26
|
JERDING, D., STASKO, J., AND BALL, T. 1997. Visualizing message patterns in object-oriented program. In Proceedings of the 19th International Conference on Software Engineering (ICSE '97, May). IEEE Press, Piscataway, NJ.
|
| |
27
|
KARSTU, S. AND OTT, L. 1994. An investigation of the behaviour of slice based cohesion measures. Tech. Rep. CS-TR 94-03. Michigan Technological Univ., Houghton, MI.
|
| |
28
|
KOWALSKI, T., SEQUIST, C., ELLIS, B., GOGUEN, H. H., PUTTRESS, J. J., CASTILLO, C. M., ROWLAND, J. R., RATH, C. A., WILSON, J. M., VESONDER, G., AND SCHMIDT, J. L. 1991. A reflective C programming environment. In Proceedings of the International Workshop on UNIX-Based Software Development Environments. USENIX Assoc., Berkeley, CA.
|
| |
29
|
|
 |
30
|
|
| |
31
|
|
| |
32
|
MENDON~A, N. C. AND KRAMER, J., Eds. 1998. Proceedings of Workshop on Program Comprehension. (Los Alamitos, CA, Apr.) IEEE Computer Society, Washington, DC.
|
 |
33
|
|
| |
34
|
|
| |
35
|
|
 |
36
|
|
| |
37
|
REASONING SYSTEMS. 1989. REFINE User's Guide. Reasoning Systems, Inc., Palo Alto, CA.
|
 |
38
|
|
| |
39
|
ROSENBLUM, D. AND WOLF, A. 1991. Representing semantically analyzed C++ code with Reprise. In Proceedings of the 3rd USENIX on C+ + Conference (Apr.). USENIX Assoc., Berkeley, CA.
|
| |
40
|
SELLINK, M. P. A. AND VERHOEF, C. 1998. Generation of software renovation factories from compilers. Tech. Rep. P98. Dept. of Computer Science, Univ. of Amsterdam, The Netherlands.
|
 |
41
|
|
| |
42
|
STEFFEN, J. 1981. The CScope Program: Berkeley UNIX Release 3.2.
|
 |
43
|
Margaret-Anne D. Storey , Kenny Wong , Hausi A. Müller, Rigi: a visualization environment for reverse engineering, Proceedings of the 19th international conference on Software engineering, p.606-607, May 17-23, 1997, Boston, Massachusetts, United States
[doi> 10.1145/253228.253496]
|
| |
44
|
|
| |
45
|
|
| |
46
|
ZEIGLER, S. 1995. Comparing development costs of C and Ada. Tech. Rep. Rational Software Corp. Available via http://wuarchive.wustl.edu/languages/ada/ajpo/docs/reports/cada/ cada art.html.
|
CITED BY 15
|
|
Scott Malabarba , Premkumar Devanbu , Aaron Stearns, MoHCA-Java: a tool for C++ to Java conversion support, Proceedings of the 21st international conference on Software engineering, p.650-653, May 16-22, 1999, Los Angeles, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Daqing Hou , H. James Hoover , Piotr Rudnicki, Specifying framework constraints with FCL, Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research, p.96-110, October 04-07, 2004, Markham, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"James Dennis Kiper : Reviewer"
The information collected by source code analysis tools can be
quite useful in such tasks as testing, reengineering, or optimization of
software. GENOA's contribution to this field is in demonstrating a way
of solving two problems for builders
more...
|