visually aided design of abstract data types

vcg is a java class generator for abstract data types, it gives the possibility to generate java classes for data types from a description written in a simple specification language. On the way from the textual description to the java classes vcg supports the developer with a graphical, tree-like representation of the (recursive) data types. vcg uses grammars as specification language, so vcg is well-suited for compiler design, e.g. for the definition of abstract syntax trees.

vcg was developed by Sebastian Winter and Florian Deißenböck as a part of system development project at the Chair of Computer Sciences II of the Technical University of Munich. It was supervised by Alfons Brandl.

vcg has a rich list of features including

Editor Full-featured specification editor with syntax highlighting.
Visitor pattern vcg has built-in support for the "visitor pattern"
Instant feedback vcg is multi-threaded and uses a second thread to auto-update the output window. You just have to stop typing for a short time and vcg issues a re-parse of the specification.
For a clearer representation vcg uses a tree-like structure to display the data types. Due to vcg's layout algorithm you can handle even large specification without loosing track of your data types.
Direct manipulation The data type representation supports direct manipulation, so you can modify the graph if you're are not fully satisfied with the auto-layout.
Diagram export vcg supports a JPEG-export of the current specification. You can use this for documentation or teaching.
Online help vcg has a built-in HTML-based online-help.
Error messages Error messages a visualized in a messages pane. The messages pane gives a description of the error and holds information on line of occurrence.

Click here for a screen shot.

Download and installation

vcg is written entirely in java. Therefore it should run on every platform where JDK 1.3 is available. vcg was tested on Windows 98, Windows 2000 and Solaris.

The current version of vcg is 1.0. Version 1.0 comes with source code and is released under GPL. For further information on GPL see the file COPYRIGHT which comes with vcg or go to

Because vcg comes as executable jar-file installation is very simple, if you have JDK 1.3 installed. (for information on JDK go to Just download vcg10.jar and start the program with

java -jar vcg10.jar

No unpacking is necessary. Some graphical operating systems support executing a executable jar-file with a double-click.
A user reported he has vcg up and running with JDK 1.2.2. But this is not tested.
Update (27/03/2002): In order to use vcg with JDK 1.4 you need the latest version of vcg.


Up to now only the user's manual is available. The user's manual is in PDF format and covers all topics of vcg. Specification language and "visitor pattern" are introduced with lots of examples.
For specification language documentation you can also check classgen documentation in html.

We presented vcg at Chair of Computer Sciences II. Slides of this presentation are available in German.


You can download a few example specifications to test vcg. Get them as jar or zip.


Please report bugs to Sebastian Winter or Florian Deißenböck.

© copyright 2000–2003 Sebastian Winter (, Florian Deissenboeck ( and Gerwin Klein

© copyright 2000–2002 Technical University of Munich, Germany Logo