All the field of the static analysis of "static control" programs.
SPPoC is written in Objective Caml. You will need version 3.00 (or higher) of the Objective Caml compiler [download]. You will also need the companion program camlp4 [download].
As the PolyLib uses the GNU MP library to handle multi-precision arithmetic, you will need to download it as well [download].
You will also need the GNU versions of make and test and gcc v3.3 or higher.
Finally, you can download the source files of SPPoC (current version: 1.2.1 released 2003/11/19): [download (763KB)] (it includes the PolyLib v4.16, the omega library v1.1 and a modified version of PIP).
The development version is available at http://repo.or.cz/w/sppoc.git (thanks to Sven Verdoolaege for setting this up). The main differences from release 1.2.1 are the removal of the polylib and Omega from the tool (you should now use an standard install of those libraries), the adaptation to the new ocaml compiler versions (you need camlp5 to compile).
Optionally you can download and install the ledit line editor that improves the editing facilities of sppoc [download].
tar xzf spocc.tgz.
Etc/Makefile.config to suit your installation.
make (if some problem occur, try make depend followed by make).
Bin/spocc. You can test this version with the
examples from the Test and Calcom directories.
make install.
sppoc interactive calculator. Actually it is an ocaml toplevel with the SPPoC module and all the necessary libraries preloaded. The quotations and the pretty-printers are also automatically started. The preloading mechanism installs a .ocamlinit file in the current directory. If such a file already exists, it is not replaced. See the ocaml documentation for more details on this mechanism.
sppoc command used alone starts the interactive calculator. If a file is given as an argument, the commands in this file are exectued as a script.
sppoc tries to use the ledit line
editor if you have it, using sppoc by redirection of its input is not reliable. The right way to interactively execute a file is: start sppoc and type the command #use "file.ml";;.
ocaml -o yourprogram -I /path/to/libsppoc libsppoc.cma yourprogram.ml
or
ocaml -o yourprogram -pp camlp4sppoc -I /path/to/libsppoc libsppoc.cma yourprogram.ml
if you want to use the quotations.
In all the cases you have to open the SPPoC module (via the open SPPoC;; statement) to be able to avoid prefixing all the sppoc commands by SPPoC.
Abstract (in French) and slides of the presentation of SPPoC at the Workshop Compilation et Parallélisation Automatique in St Nabor, October 1999.
The LIFL Research Report 00-04 (in French) describing SPPoC and some applications: "SPPoC : fonctionnement et applications".
SPPoC : manipulation automatique de polyèdres pour la
compilation (in French), Technique et Science Informatique,
volume 20, n°8, pages 1019--1048, 2001
Pierre.Boulet@lifl.fr, Xavier.Redon@lifl.fr