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
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 platform
A virtual machine
is an abstract machine for which an interpreter
, Abstract Machine Notation
, Christmas, SDL
, S-K reduction machine
, SECD, Tbl
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