C++ Analysis-- without the Pain.
From University of California,  Davis and 
Bell Laboratories
GEN++ white paper

Longer GEN++ paper

The GEN++ Manual

Simple GEN++ query

Some GEN++ Users

P. Devanbu's home page

Tools Lab home page



C++ Analysis for Couch Potatoes

GEN++ is now Y2K Compliant!!  Get a new license file

GEN++ is an application-generator that greatly simplifies the task of creating analysis tools for the C++ language. Analysis tools are specified in a high-level domain-specific language (DSL) that is designed to facilitate the task of specifying C++ analysis tools. 

GEN++ is based on Cfront, the original C++ to C language translator developed by Bjarne Stroustrup, and GENOA, a language-independent parse-tree querying framework. It was originally developed at AT&T Bell Laboratories (now Lucent Technologies/Bell Laboratories) by Prem Devanbu (now at University of California, Davis) and Laura Eaves. Thanks to Lucent Technologies/Bell Labs innovations, it is now available for free download

(Aria is a research prototype created by Prem Devanbu, David Rosenblum and Alex Wolf; the GEN++ tool has similar features. ) 

Several tools have been created with GEN++, and come with the package; these can both be used directly, and as a springboard for other applications: 

Where are variables defined/used (no pointer analysis). 
Control flow graph for C++ programs. 
Inheritance relationships, including private/public. 

Chidamber/Kemmerer Object-Oriented Metrics for C++ 
Coding Standards for C++. 

Inline functions must not be virtual. 
Destructors for base classes must be virtual. 
etc, etc.... 


Premkumar Devanbu
Date Last Modified: 5/10/98