Main Page | See live article | Alphabetical index

Abstract machine

Abstract machine in its generic meaning is a behavioral model of a computer. Different branches of computer science/engineering put somewhat differing specialized meanings into this notion, as seen below.


Abstraction means 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 programming language, Abstract Machine Notation, ALF, CAML, F-code, FP/M, Hermes, LOWL, Christmas, SDL, S-K reduction machine, SECD, Tbl, Tcode, TDF, TL0, WAM.


Abstract machine is 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.


Abstract machine, or abstract computer is a model of computation in computational complexity theory to analyze the complexity of algorihms. An abstract computer usually postulates its design in terms of the set of allowable operations and time and space complexity of atomic operations. The best known example is Turing machine.


See also: This article (or an earlier version of it) contains material from FOLDOC, used with permission. Modify if needed.