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.
abstract data type « abstract interpretation «
abstract machine » Abstract Machine Notation »
abstract syntax » Abstract Syntax Notation 1