GENOA—a customizable, front-end-retargetable source code analysis framework
- 1 April 1999
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Software Engineering and Methodology
- Vol. 8 (2) , 177-212
- https://doi.org/10.1145/304399.304402
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.Keywords
This publication has 18 references indexed in Scilit:
- Generating testing and analysis tools with AriaACM Transactions on Software Engineering and Methodology, 1996
- Managing design trade-offs for a program understanding and transformation toolJournal of Systems and Software, 1995
- A metrics suite for object oriented designIEEE Transactions on Software Engineering, 1994
- Eli: a complete, flexible compiler construction systemCommunications of the ACM, 1992
- LaSSIECommunications of the ACM, 1991
- The Pan language-based editing system for integrated developmentACM SIGSOFT Software Engineering Notes, 1990
- Adding relational query facilities to software development environmentsTheoretical Computer Science, 1990
- Program understanding: Challenge for the 1990sIBM Systems Journal, 1989
- Tools for Building Application GeneratorsAT&T Technical Journal, 1988
- Generating editing environments based on relations and attributesACM Transactions on Programming Languages and Systems, 1986