Tools for the Programatica project

This directory contains the sources for (some of) the tools implemented as part of the Programatica project.

This is all work in progress (including this documentation)!

What tools are provided?

The Programatica tools currently consist of the following programs:
pfe
The Preliminary Front-End tool. (Or perhaps the Programatica Front-End tool :-)
pfesetup
A front-end to pfe, for simple creation of PFE projects, using a command line interface similar to that of Hugs or GHC.
cert
Certificate manipulation tool.
pfebrowser
A Haskell browser tool (runs under the X11 Window system). It also has some support for certificate management.
Except for pfebrowser these are all command-line tools.

We also provide a version of the Haskell 98 Prelude and standard libraries for use with PFE.

How to run the tools

On PacSoft computers

If you just want to test the tools, they are already installed in (along with various other Linux tools) so just log in on one of the Linux computers (kokotni, watiya, turing ,...) and add that directory to your path.

On other computers

You can download a recent snapshot from the download directory.

What you need to compile the tools

You need Linux (or SunOS or FreeBSD or MacOS X or something similar) (with the X Window system) and the following tools: (Note: if you just want to test the tools, you don't need to compile them yourself. See the previous section.)

How to compile the tools

The usual command sequence should work:
./configure
make
make install
The Makefile in this directory has the following useful targets:
all (this is the default)
This compiles pfe and pfebrowser. It also creates the bin/ and lib/ subdirectories containing a template of the things that get installed by make install.
install
This installs all the programs and library files. Use make PREFIX=... to control where things get installed.
tar
creates a tar file containing the programs and the library files, allowing easy installation of them on another computer.
clean
removes (almost all) automatically generated files.

To test the tools without installing them first, add the bin/ subdirectory to your $PATH and set $PROGRAMATICA to point to the lib/Programatica subdirectory.

Some additional test programs can be compiled by going to one of the subdirectories running the command make there.

In some of the directories, you can choose compilation method (Humake, or ghc --make) by changing the definition of HMAKE in the Makefile...

Subdirectories

The code that has been actively developed recently is located in the following subdirectories:
DirectoryDescription
base Extensible Haskell front-end and base language (Haskell 98) tools. There is a README file with further details.
pfe PFE - the preliminary front-end framework and command-line tools.
property Extension of the base language with P-Logic property declarations, including a new parser and an extended type checker. (An awful lot of work for a small extension...)
hs2html Haskell to HTML translator. (Little extra work for a potentially useful tool.)
hs2alfa Haskell to Alfa translator.
hs2stratego Haskell to Stratego translator.
hsutils Spin-off Haskell utility programs.
evman Files relating to evidence (certificate) management, in particular the command line tool cert and the implementation of the certificate servers.

Authors: various
Contact: TH