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 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.
--
http://www.ps.uni-sb.de/seam/
CategoryLanguageImplementation