SEAM (Simple Extensible Abstract Machine) is designed to be language-
and platform-independent, to be simple and based on few principled
- 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 code or to native code.
- Abstract execution model. Computations are defined by a generic
evaluator interface. SEAM supports arbitrarily many codes and
evaluators to be used at the same time and interact freely. In
particular, common virtual machine services like foreign function
interfaces are easily expressible.
SEAM is used successfully to implement the new virtual machine
underlying the Alice Programming System.
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 188.8.131.52
Locale: LANG=C, LC_CTYPE=fi_FI@euro (charmap=ISO-8859-15)