Abstract machine

related topics
{system, computer, user}
{math, number, function}
{specie, animal, plant}

An abstract machine, also called an abstract computer, is a theoretical model of a computer hardware or software system used in automata theory. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes discrete time paradigm.

In the theory of computation, abstract machines are often used in thought experiments regarding computability or to analyze the complexity of algorithms (see computational complexity theory). A typical abstract machine consists of a definition in terms of input, output, and the set of allowable operations used to turn the former into the latter. The best-known example is the Turing machine.

More complex definitions create abstract machines with full instruction sets, registers and models of memory. One popular model more similar to real modern machines is the RAM model, which allows random access to indexed memory locations. As the performance difference between different levels of cache memory grows, cache-sensitive models such as the external-memory model and cache-oblivious model are growing in importance.

An abstract machine can also refer to a microprocessor design which has yet to be (or is not intended to be) implemented as hardware. An abstract machine implemented as a software simulation, or for which an interpreter exists, is called a virtual machine.

Through the use of abstract machines it is possible to compute the amount of resources (time, memory, etc.) necessary to perform a particular operation without having to construct an actual system to do it.


Articles concerning Turing-equivalent sequential abstract machine models

An approach is to take a somewhat formal taxonomic approach to classify the Turing equivalent abstract machines. This taxonomy does not include finite automata:

Family: Turing-equivalent (TE) abstract machine:


Subfamily (1)-- Sequential TE abstract machine model: There are two classes (genera) of Sequential TE abstract machine models currently in use (cf van Emde Boas, for example):

Genus (1.1) -- Tape-based Turing machine model: This includes the following "species":

Genus (1.2)-- The register machine model: This includes (at least) the following four "species" (others are mentioned by van Emde Boas):

Other abstract machines

Full article ▸

related documents
Accumulator (computing)
Internet standard
Active Server Pages
Oberon programming language
Wikipedia:Federal Standard 1037C terms/computer programming terms
LZ77 and LZ78
Hello world program
Erlang unit
Visual DialogScript
Pentium FDIV bug
Third-order intercept point
System analysis
Mutual exclusion
Client-side scripting
Server-side scripting
Remote procedure call
Core dump
IBM 1620 Model I
Segmentation fault
Occam (programming language)