SEAM (Simple Extensible Abstract Machine) is a virtual machine
architecture and library. SEAM is designed to be language- and
platform-independent, to be simple and based on few principled
services. - Uniform data representation and memory management.
All datastructures used to represent computations, including
code and threads, reside in an abstract store, which represents
an abstract graph of data nodes. Language specific
datastructures are modelled on top of the language-independent
store structures. The store manages the allocation of nodes and
their efficient layout in memory. - Platform-independent
external representation. Store values are converted to a
portable representation during export (pickling), and converted
back during import (unpickling). A language-independent transfer
language is defined to describe values independent from
platform. Unpickling operates with respect to runtime-pluggable
language-dependent transformation. For example, language
specific code can be instantiated either to byte