FGN is a small domain specific language that can be used as a data-flow graph generator. It produces explicit graph representations (in the .dot format) from purely functional descriptions, using powerful features such as higher-order functions to encode complex graph structures in an abstract and concise way. FGN can be used as a front end to various tools accepting data-flow graphs as input specification.
FGN is a descendant of the (now deprecated) CamlFlow system.
Consider this very simple data-flow graph:
It will can be produced by the following FGN program:
The first section declares types (which are used to label edges), input and and output nodes and operations. Operations, when fully applied, create nodes in the graph. The second section defines functions and "builds" the graph.
FGN has been written in Objective Caml.
You can have a look at some sample programs and results to get an idea of FGN capabilities.
Version 2.0 is the first public release. It has been tested on a MacBook Pro running MacOS 10.5.1 but should compile on any platform supported by the Objective Caml distribution. You will need a recent Objective Caml distribution and the graphviz package to visualize the result graphs.
The language reference manual can be obtained here (it also included in the distributed package).
Feedback, bug report to Jocelyn _dot_ Serot (at) univ.bpclermont.fr
Last update: Jun 26 2008