Abstract Machines

An abstract machine is a semantic model of a programming language, specified by how each piece of the language's notation would be translated into the abstract machine's code.

It should provide a basis for the efficient implementation of the programming language on a target machine.


Abstract Machines Survey

Various abstract machines have been surveyed: WAM (Warren Abstract Machine), SECD G-machine, <nu,G>-machine, LAM (Linear Abstract Machine), IAM (Interaction Abstract Machine), CHAM (CHemical Abstract Machine), Update Plans.

Most appear to be for functional languages.

Othe possible abstract machines include: SOS (Structured Operational Semantics), CCS, Petri Nets, TAM (Threaded Abstract Machine), SK-reduction machine, RAM (Random Access Machine), von Neumann machine, Turing machine, Cellular Automata, Spatial Machien, CAM (Categorical Abstract Machine), B, Lambda-calculus, Production System Machine, SMC, Pi-calculus.


CHAM for Linda

The CHAM is the Chemical Abstract Machine. It is composed of ``molecules,'' ``solution'' of molecules, and ``transformation rules.''

This was investigated because there was an existing attempt to represent Linda using the CHAM.

We previously thought the CHAM to be incapable of expressing the extend York Linda, but have now found it to be capable.


Generic Operations

This is to do with the use of abstract machines to identify generic operations by examining the patterns of abstract machine operations for particular application areas (particularly CBR in this project).


Algorithmic Skeletons

Algorithmic Skeletons are high-level programming constructs for parallel programming.


Liam

This is the Linda Abstract Machine being developed using using CHAM.


Liam Refinement

This is the process of refining Liam to a physical architecture.


Abstract Machine Derivation

An actual process for deriving an abstract machien for a language and architecture class is desirable, and is to be investigated.


Abstract Machine Classification

This is an attempt to classify abstract machines according to their degree of abstraction.