The CamlFlow system
CamlFlow is a Caml to data-flow graph translator.
It can be used either to produce data-flow representations of some Caml
programs or to describe existing graphs in a textual manner in Caml.
A quick introduction
CamlFlow uses a (strict) subset of the Caml Light
syntax to describe data-flow graphs.
In this graph, nodes represent builtin or user-defined primitives and edges denote
data-dependencies. For example, the following CamFlow program
(* File foo.mli *)
value foo : int -> int = 1 "foo"
;;
(* File foo.ml *)
let x = 1 + 2;;
let main = foo x * 3;;
produces the following graph
CamlFlow comes in two flavors: a standalone, batch-oriented compiler
that can output external graph representations in several formats
from Caml source files and an interactive, toplevel-based system,
to be used as an "inferior process" for another "graph-handling" application.
Two output formats are currently supported by the batch compiler
-
DOT (a
high-quality graph visualization and manipulation tool)
-
SynDEx (a CAD
software supporting the "Algorithm Architecture Adequation" methodology
(this format allows Caml programs to be quickly (and safely) implemented
on parallel platforms such as multi-DSP architectures or LAN of workstations)
Currently, the interactive system only works in conjunction with the
DOTTY application.
CamlFlow has been written in Caml Light
Examples
You can have a look at some sample programs and results
to get an idea of CamlFlow capabilities and limitations.
Availibility
Release 1.04 has been tested on a Sun SPARC running SunOS 4.1.3 and a HP 9000/715 under
HP-UX 10.20, but it should compile on any Unix platform supported by the Caml Light distribution.
You will need Caml Light 0.74 and the
graphviz package to use the
interactive system.
Related papers
-
Jocelyn Sérot. CamlFlow: a Caml to data-flow graph translator.
2nd Scottish Functional Programming Workshop , St-Andrews, 26-28 Jul 2000, pp 229-244.
BibTeX entry, Compressed PS
-
Un compilateur caml -> syndex pour les applications
de traitement du signal distribuées. 11eme Journées
Francaises des Langages Applicatifs, Le Mont St-Michel, 31 Jan-!er
Fev 2000, pp 115-130.
BibTeX entry, Compressed PS
Contact
Feedback, bug report to
Jocelyn Sérot
Last update: Jun 14 2000
| |