The GRASP Project has created an algorithmic-level graphical representation for software called the Control Structure Diagram (CSD). The CSD was created to improve the comprehension efficiency of Ada source code and, as a result, improve software reliability and reduce software costs. Since its creation, the CSD has been expanded and adapted to include other languages. GRASP provides the capability to generate CSD's from Ada 95, C, C++, Java, and VHDL source code in both a reverse and forward engineering mode with a level of flexibility suitable for professional application. GRASP has been integrated with the GNU family of compilers for Ada (GNAT) and C (gcc), and Sun's javac compiler for Java. Use of GRASP is not restricted to these compilers, however. This has resulted in a comprehensive graphically-based development environment for these languages. The user may view, edit, print, and compile source code as CSDs with no discernible addition to storage or computational overhead.
cstor is a cross-reference compiler and reverse engineering tool. It compiles one text file (database) from multiple source modules (currently reads C, C++, and Perl). The tool combines reverse engineering capabilities, code validation, and an HTML documentation generator. The database can then be reused from own scripts and programs, e.g. to implement cross-compilers, validate coding conventions, build statistics etc. The builtin documentation generators are actually an application of the database.