
--------------------------------------------------------------------
          Announcement: New version of the VCG tool
--------------------------------------------------------------------
     

			The VCG Tool 
			============
	   A Visualization Tool for compiler graphs


DESCRIPTION
     The VCG tool reads a textual and readable specification of a 
     graph and visualizes  the graph.   If  not  all positions of 
     nodes are fixed,  the tool  layouts the graph using  several 
     heuristics as reducing  the number of crossings,  minimizing 
     the  size of  edges,  centering of nodes.  The specification 
     language of  the  VCG  tool is nearly compatible to GRL, the 
     language of the edge tool, but contains many extensions. The 
     VCG tool  allows folding of dynamically or statically speci-
     fied  regions  of the  graph.  It uses  colors and  runs  on 
     X11. (An older version runs on Sunview).

     The VCG tool has been developed and tested on a Sparc ELC with
     SunOs 4.1.3, X11 Release 5 and Release 6, and different ANSI C
     and K&R C compilers. It has further been tested on Solaris
     (SunOs 5.3, gcc only), on a Silicon Graphics (IRIX 5.2),
     on a IBM R6000 (AIX 2 with AIX Windows), on a HP-UX (X11R5, c89),
     on a DecStation (ULTRIX, X11R5, gcc only), on Linux (X11R5, gcc),
     and on OSF (X11R5, gcc). Recently, a user ported the tool to 
     VAX/VMS.


WHAT IS NEW
     1) Several bugs are solved now. Thanks to all people who have
	reported these. 

     2) The most interactive commands are now much faster.

     3) Up to 254 colors out of 16777216 possibilities can be used,
        i.e. a color table is used now. 

     4) Orthogonal layout is implemented: here all edges consist
        of horizontal and vertical edge segments (manhattan layout).
        In particular, flowcharts look much better in this style.

     5) Fisheye views: If the graph is very large, we normally had
        only the possibility to see a detail but not the whole graph,
        or to see the whole graph, but scaled so much that nothing is
        recognizable. Now, we use fisheyes and see the focus point en
        detail and the overview over the graph at the same time.

     6) The printer driver interface allows to produce a output file
        of  the  visualized  graph  without the need of interaction.
        The VCG tool acts as a kind of  converter  program  in  this
        case:  it  converts  a  VCG file into a PostScript or bitmap
        file. The interactive display is suppressed in this case.
        This is useful if a large number of VCG specifications must be 
        converted into PostScript or bitmap file by a batch job. 

     7) It is possible to explore the network of edges by the `follow
        edge' command. This command is now more comfortable: a history
        mechanism is implemented. 

     8) New types of edges: backedges and bentnearedges are very useful
        for flowcharts and control flow graphs.
        There are some new attribute for the edges: the color of the
        label and the arrowheads, the style of the arrowheads etc.

     9) Time limits can be specified for the layout. If the time limit
        is exceeded, the tool switches into the fastest and ugliest 
        layout mode.

    10) etc.
 


FEATURES
     0) The VCG tool is not a graph editor. It is intended to
	visualize large graphs that are automatically generated by
	programs, e.g. debuggers of data structures.
     
     1) Speed is always the first priority. Examples:

	Type  | Nr.of nodes | Nr.of edges | Time     |  Mode   
        -------------------------------------------------------------
        tree  |  4095       |  4094       |   2 sec. | normal
	graph |    66       |    95       |   3 sec. | normal
	graph |   132       |   288       |   5 sec. | normal
	graph |    20       |   190       |  14 sec. | normal
	graph |    26       |   325       |  22 sec. | normal
	graph |    75       |  3983       |  89 sec. | -f (fast mode)

	The graph 5 with 75 specified nodes and 3983 edges consists of 
	21694 internal nodes and 23540 internal edge segments.

	The tests were done using a xvcg (X11 version, compiled by 
	gcc version 2.6.3, gcc options -O -finline-functions).
	They were done on a Sparc 10/30 (arch = sun4m) with 32 MB
	main memory. 
	The times include time for loading, layouting and displaying. 

     2) The layout algorithm can be controlled in different ways. 
	There are 13 basic layout methods, including a specialized
	version for trees, and 4 variants of crossing reduction,
	and various optional optimization methods.
	Further, the priorities of edges and the number of layout 
	iterations may be set to influence the layout.

     3) Folding of subgraphs, of dynamically specified regions and
	the hiding of classes of edges allow to select exactly the
	part of the graph that is of interest.	

     4) Arbitrary zooming of graphs.

     5) Color support.

     6) Different shapes of nodes are available: boxes, triangles, 
        rhombs, ellipses.

     7) It is possible to specify a raster where the centers
	of the nodes are placed. This may yield in a more uniform
	layout in some applications.

     8) Export into PBM-P4 files (black and white) or PNM-P6 files
	(color). For these formats, there are a lot of converters
	and printer drivers in the world. (For instance, the PBM+ 
	package is available by anonymous ftp at ftp.cs.uni-sb.de 
	in the directory /pub/graphics).
	Colored multiple page PostScript output up to 25 pages to 
        print very large graphs is possible, too.

     9) Edges can be drawn as polygon segments, or as splines.
	Splines are basically of interest for a quality PostScript output,
	because the drawing of splines in a X11 window is rather slow.

    10) Interface to program animations that provide the VCG tool
	with a sequence of graph descriptions.
 

LICENSE CONDITIONS
     Copyright (C) 1993-2005 Saarland University

     This work is supported by the ESPRIT project 5399 Compare.
     We thank the Compare Consortium for the permission to distribute
     this software and documentation freely.  You can redistribute 
     it under the terms of the  GNU General Public License as published by
     the  Free Software Foundation;  version 2  of the License.

     The members of the Compare Consortium are ACE Associated Computer 
     Experts bv, GMD Forschungsstelle an der Universitaet Karlsruhe,
     Harlequin Limited, INRIA, STERIA, Stichting Mathematisch Centrum (CWI), 
     and Universitaet des Saarlandes.

     The Compare Consortium will neither assume responsibility for any 
     damages caused by the use of its products, nor accept warranty or 
     update claims. This product is distributed in the hope that it will 
     be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
     of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     GNU General Public License for more details.  


AVAILABILITY
     The software is available by anonymous ftp at ftp.cs.uni-sb.de
     (134.96.7.254) in the directory /pub/graphics/vcg. This site is
     in Germany. 
     Contact  sander@cs.uni-sb.de  for additional information.


AUTHORS
     Georg Sander, University of Saarland, 66041 Saarbruecken, Germany.
     Iris Lemke,   University of Saarland, 66041 Saarbruecken, Germany.
	
     The VCG tool has been developed at the Institute for Compiler 
     Construction, Department of Computer Science, at the University
     of Saarland, conducted by Prof. Dr. R. Wilhelm. 


