from
The Free On-line Dictionary of Computing (8 July 2008)
abstract machine
1. <language> A processor design which is not intended to be
implemented as {hardware}, but which is the notional executor
of a particular {intermediate language} (abstract machine
language) used in a {compiler} or {interpreter}. An abstract
machine has an {instruction set}, a {register set} and a model
of memory. It may provide instructions which are closer to
the language being compiled than any physical computer or it
may be used to make the language implementation easier to
{port} to other {platforms}.
A {virtual machine} is an abstract machine for which an
{interpreter} exists.
Examples: {ABC}, {Abstract Machine Notation}, {ALF}, {CAML},
{F-code}, {FP/M}, {Hermes}, {LOWL},
{Christmas}, {SDL}, {S-K reduction machine}, {SECD}, {Tbl},
{Tcode}, {TL0}, {WAM}.
2. <theory> A procedure for executing a set of instructions in
some formal language, possibly also taking in input data and
producing output. Such abstract machines are not intended to
be constructed as {hardware} but are used in thought
experiments about {computability}.
Examples: {Finite State Machine}, {Turing Machine}.
(1995-03-13)