GraphViz

doc,

Commands include:

Dot

Example

File graph1.dot:

digraph G {
  main -> parse -> execute;
  main -> init;
  main -> cleanup;
  execute -> make_string;
  execute -> printf;
  init -> make_string;
  main -> printf;
  execute -> compare;
}
To display the above graph use: dot -Tps graph1.dot | ghostscript -
dot -Tps graph1.dot | ghostview -