Miguel Ramos | 14 Nov 13:03 2013

Tool for visualisation of graph reduction step by step


Hello,

It has already been asked for on this list, and I think one does not
exist, however:

(a) Does anyone know of a tool for the stepwise visualisation of graph
reduction? I am aware that it could only be used for minimal examples
and that the output would be a bit implementation-specific.

My interest is not debugging, but simply producing presentation slides.

(b) What tools do people use for plotting static program graphs, such as
those in books, papers and slides?

I am currently using graphviz (dot) but I am not being able to tame it
to make the graphs look good and proper for papers and slides.

I also have a minimal interpreter, which can currently output each step
to graphviz, but it still does not handle enough of the language to be
usable and I don't want to divert the focus of my work.

Thank you very much,

Miguel Lopes Santos Ramos
Johannes Waldmann | 14 Nov 16:11 2013
Picon

Re: Tool for visualisation of graph reduction step by step

Miguel Ramos <org.haskell <at> miguel.ramos.name> writes:

> tool for the stepwise visualisation of graph reduction? 

I'm pretty sure the Graph Transformation community has lots.
A typical venue is http://www.informatik.uni-bremen.de/icgt2012/ 

- J.W.
Miguel Ramos | 15 Nov 16:13 2013

Re: Tool for visualisation of graph reduction step by step


Qui, 2013-11-14 às 15:11 +0000, Johannes Waldmann escreveu:
> Miguel Ramos <org.haskell <at> miguel.ramos.name> writes:
> 
> > tool for the stepwise visualisation of graph reduction? 
> 
> I'm pretty sure the Graph Transformation community has lots.
> A typical venue is http://www.informatik.uni-bremen.de/icgt2012/ 
> 
> - J.W.

Thanks, your tip made me find the following two:
- Porgy, a bit too interactive for what I want, but interesting
- Anagopos, seems to be perfect for big graphs in 3D, I'll probably use
this latter on for more complex graphs.

Greetings,
M.R.
Stephen Tetley | 14 Nov 17:59 2013
Picon

Re: Tool for visualisation of graph reduction step by step

On 14 November 2013 12:03, Miguel Ramos <org.haskell <at> miguel.ramos.name> wrote:
>

> (b) What tools do people use for plotting static program graphs, such as
> those in books, papers and slides?

Graphviz can be tamed somewhat with ranking - see the examples in the manual.

If you want pretty, hand coded graphs then TikZ is a handsome option.
It has the obvious edges with or without arrowheads, but also the
"anchor" abstraction which is a very neat way of placing edges.
Thomas Horstmeyer | 15 Nov 12:45 2013
Picon

Re: Tool for visualisation of graph reduction step by step

Am 14.11.2013 17:59, schrieb Stephen Tetley:
>
> If you want pretty, hand coded graphs then TikZ is a handsome option.
> It has the obvious edges with or without arrowheads, but also the
> "anchor" abstraction which is a very neat way of placing edges.
>
That is my preferred way as well. I often use it through the package 
tkz-graph which makes defining graphs easy.

[1] http://www.ctan.org/tex-archive/macros/latex/contrib/tkz/tkz-graph
Miguel Ramos | 15 Nov 16:08 2013

Re: Tool for visualisation of graph reduction step by step


Qui, 2013-11-14 às 16:59 +0000, Stephen Tetley escreveu:
> On 14 November 2013 12:03, Miguel Ramos <org.haskell <at> miguel.ramos.name> wrote:
> >
> 
> > (b) What tools do people use for plotting static program graphs, such as
> > those in books, papers and slides?
> 
> 
> Graphviz can be tamed somewhat with ranking - see the examples in the manual.

Thanks, I've already conquered rank. For this kind of graph, mostly
tree-like, I find useful to let dot infer rank from edges, except for
those few edges which form cycles, where I use [ constraint = 0 ] so
that a rank constraint is not introduced for them.

To whom it may interest, my best is (distilled):

digraph G {
  graph [ splines = polyline ];
  node [ ordering = out, shape = plaintext ];
  edge [ arrowhead = none, headport = n ];
  a0 [ label = " <at> ", root = 1 ];
  a0 -> a1;
  a1 [ label = " <at> " ];
  a1 -> a2;
  a2 [ label = take ];
  a1 -> a3;
  a3 [ label = 5 ];
  a0 -> a4;
(Continue reading)


Gmane