PGA - ProGram Algebra

Toolset

The toolset consist of the following:

Hierarchy of instruction sets with projections/embeddings.

Instruction sets:
PGLA, PGLB, PGLC, PGLD, PGLDg, PGLE, PGLEc, PGLEcw, PGLEcr, PGLEcm, PGLAu, PGLBu, PGLBg

Basic instruction sets:
  • Generic
  • MPP - Molecular Programming Primitives
  • MPPV - MPP with Values
  • HMPPV - Highlevel MPPV
  • FMN - Focus Method Notation
  • MSP - Molecular Scripting Primitives (extends HMPPV with instructions on values)
  • MSPea - extension of MSP with eval/apply
  • MSPio - extension of MSP with simple I/O
  • HMPPVis - HMPPV with inverse selection
  • MSPfunc - extension of MSPea with functions

Projections/embeddings:
pglb2pgla, pglc2pglb, pgld2pglc, pgldg2pgld, pgle2pgldg, pglec2pgle, pglecw2pglec, pglecr2pglec, pglecm2pglecr, pglau2pglbu, pglbu2pglbg, pglbg2pglb

Tools:
  • genparser - generic parser
  • gensim - generic simulator
  • prog2lts - program to labelled transition system translator
  • bisim - bisimulator of labelled transition systems
  • parsim - parallel simulator
  • pgla-jumpopt - pgla jump optimizer
  • gencompiler - generic compiler (available modules for compiling PGLEc.MSPio to PIR (Parrot Intermediate code Representation; Parrot is the virtual machine for Perl 6 that is currently being developed), and PGLEc.MSPio to CIL (Common Intermediate Language; the intermediate language voor the MS .NET Framework).
  • threadsim - thread simulator

Statemachines (to be used with basic instruction set FMN):
  • smbr - boolean register
  • smnnr - natural number register
  • smnnc - natural number counter
  • smnns - natural number stack
  • Console

Requirements

A machine running Unix or Linux with the following installed:

Tested on

Copyright

This toolset is copyrighted by Bob Diertens, 2001-2020. It may be used free of charge for educational purposes only.

This toolset comes with absolutely no warranty. It may not be sold and only be distributed in the form as found here.

Download

Sources

You have to download the following gzipped tar-files:

Install

  • PGA Toolset
    Execute the commands
        tar zxf pga-1.8.tar.gz
        cd pga-1.8
    
    And follow the instructions in the file INSTALL.

  • ToolBus
    Execute the commands
        tar zxf toolbus-bundle-0.1.1.tar.gz
        cd toolbus-bundle-0.1.1
        ./configure --prefix=<install-directory>
        make
        make install
    
    Use the same install-directory as with the PGA Toolset.

Packages

The packages include the Toolbus bundle and the older version of graphviz. They will install in /usr/local/PGA.

Note that these packages are experimental at the moment. Please report any problems with them.

Linux system version package
Fedora 31 pga-1.8-1.fc31.x86_64.rpm
Ubuntu 18 LTS pga_1.8-1_amd64.deb
Ubuntu 19 pga_1.8-1-ub19fix_amd64.deb *
Ubuntu 20 LTS pga_1.8-2-ub20fix_amd64.deb **
* altered version of pga_1.8-1_amd64.deb by changing dependency on libperl5.26 to libperl5.28
** altered version of pga_1.8-1_amd64.deb by changing dependency on libperl5.26 to libperl5.30

Usage

Information on how to use the various tools can be found in the files in the directory doc in the distribution and after installation in the directory doc in the installation directory. Here, you can find the user manual in various formats, which can also be viewed online.