Heptagon is a synchronous dataflow language whose syntax and semantics is inspired from Lustre, with a syntax allowing the expression of control structures (e.g., switch or mode automata).

Heptagon is also a research compiler, whose aim is to facilitate experimentation. The current version of the compiler includes the following features:

Heptagon is developed in the Parkas (ENS) and Ctrl-A (LIG/INRIA) research teams.

How to get it or try it

Installation with OPAM

The easiest and recommended way to install Heptagon/BZR is to use the OCaml Package Manager (OPAM).

The installation sequence using OPAM is :

  1. Install OPAM : the procedure depends on your system and is described on the OPAM webpage.
  2. (optional, for the graphical simulator) Install the gtk2.0 libraries (on debian systems, the package is named libgtk2.0-dev)
  3. Initialize OPAM:
              opam init
              opam switch 4.02.3
              eval `opam config env`
            
  4. Install Heptagon:
    opam install heptagon

To use the controller synthesis tool ReaX with Heptagon/BZR :

  1. Install the mpfr and gmp libraries (on debian systems, packages named libmpfr-devel and libgmp-devel)
  2. Add the repository for ReaX and its libraries (named here nberth-repo) :
            opam repo add nberth-repo "http://nberth.space/opam-repo"
            opam update
          
  3. Install ReaX and its libraries, and the BZReaX script:
    opam install fixpoint bddapron reatk bzreax

The source code is also available from the Heptagon/BZR repository for manual compilation and installation. Further indications about ReaX can be found on the ReaX/ReaTk page.

Manual installation

Download

Heptagon can be freely downloaded here.

Technical requirements

The use of the Heptagon compiler by itself does not require any additional tools. However, the usual use involves a compiler for the generated code (target languages are currently C or Java).

To manually compile and install the Heptagon compiler, the following tools and libraries are needed:

The tools below are optional or are related to some subparts of Heptagon:

Compilation and installation

Once the previously described libraries and tools are installed, the Heptagon compiler and libraries can be installed with:

    ./configure
    make
    make install
  

Contact

Please contact us for further information.

Main participants

Gwenaël Delaval Assistant Prof. at UGA +33 4 76 61 54 31 mail web
Hervé Marchand Researcher at INRIA +33 2 99 84 75 09 mail web
Marc Pouzet Professor at ENS mail web
Eric Rutten Researcher at INRIA +33 4 76 61 55 50 mail web