In
theoretical computer science
Theoretical computer science is a subfield of computer science and mathematics that focuses on the Abstraction, abstract and mathematical foundations of computation.
It is difficult to circumscribe the theoretical areas precisely. The Associati ...
, a pointer machine is an atomistic
abstract computational machine whose storage structure is a
graph. A pointer algorithm could also be an
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
restricted to the pointer machine model.
Some particular types of pointer machines are called a linking automaton, a KU-machine, an SMM, an atomistic LISP machine, a tree-pointer machine, etc.
[ Amir Ben-Amram (1995). What is a "Pointer machine"?, SIGACT News (ACM Special Interest Group on Automata and Computability Theory), volume 26, 1995.]
Pointer machines do not have arithmetic instructions. Computation proceeds only by reading input symbols, modifying and doing various tests on its storage structure—the pattern of nodes and pointers, and outputting symbols based on the tests. In this sense, the model is similar to the
Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
.
Types of "pointer machines"
Both Gurevich and Ben-Amram list a number of very similar "atomistic" models of "abstract machines";
[ Yuri Gurevich (2000), ''Sequential Abstract State Machines Capture Sequential Algorithms'', ACM Transactions on Computational Logic, vol. 1, no. 1, (July 2000), pages 77–111.][ Ben-Amram believes that the "atomistic models" must be distinguished from "high-level" models. The following atomistic models will be presented below:
* Schönhage's storage modification machines (SMM),][ Arnold Schönhage (1980), ''Storage Modification Machines'', SIAM Journal on Computing Vol. 9, No. 3, August 1980.]
* Kolmogorov–Uspenskii machines (KUM or KU-Machines).
Ben-Amram also presents the following varieties, not further discussed in this article:
* Atomistic pure-LISP machine (APLM)
* Atomistic full-LISP machine (AFLM),
* General atomistic pointer machines,
* Jone's I language (two types).
Schönhage's storage modification machine (SMM) model
The following presentation follows van Emde Boas.[ Peter van Emde Boas, ''Machine Models and Simulations'' pp. 3–66 in: Jan van Leeuwen, ed. ''Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity'', The MIT PRESS/Elsevier, 1990. (volume A).]
The machine consists of a fixed alphabet of input symbols, a fixed program, and a mutable directed graph with its arrows labelled by alphabet symbols. The graph is the machine's storage. Each node of the graph has exactly one outgoing arrow labelled with each symbol, although some of these may loop back into the original node. One fixed node of the graph is identified as the start or "active" node.
Each word of symbols in the alphabet can then be translated to a pathway through the machine; for example, 10011 would translate to taking edge 1 from the start node, then edge 0 from the resulting node, then edge 0, then edge 1, then edge 1. Thus a word identifies a node, the final node of the path, but this identification will change as the graph changes during the computation.
The machine can receive instructions which change the layout of the graph. The basic instructions are:
(1) new ''w'' instruction, which creates a new node at the end of the path ''w'', with all its edges directed to the next-to-last node in ''w''.
(2) set ''w'' to ''v'' instruction which (re)directs an edge to a different node. Here ''w'' and ''v'' represent ''words''. The instruction results in changing the destination of the last edge in the path ''w''.
(3) If ''v = w'' then instruction z : Conditional instruction that compares two paths represented by words ''w'' and ''v'' to see if they end at the same node; if so jump to instruction z else continue. This instruction serves the same purpose as the ''if'' command in any imperative programming language.
(4) read and write instructions for input/output, accessing a read-only input tape and a write-only output tape, both containing symbols of the alphabet.
Knuth noted that the SMM model coincides with a type of "linking automaton" briefly explained in volume one of The Art of Computer Programming.[
]
Kolmogorov–Uspenskii machine (KU-machine) model
KUM differs from SMM in allowing only invertible pointers: for every pointer from a node x to a node y, an inverse pointer from y to x must be present, labeled by the same symbol. In other words, the storage graph is undirected. Since outgoing pointers must be labeled by distinct symbols of the alphabet, both KUM and SMM graphs have O(1) outdegree. However, KUM pointers' invertibility restricts the in-degree to O(1), as well. This addresses some concerns for physical (as opposite to purely informational) realism.
There are other, minor differences between the models, such as the form of the program - a state table instead of a list of instructions.
Considerations regarding the pointer-machine model
Use of the model in complexity theory:
van Emde Boas (1990) expresses concern that this form of abstract model is:
:"an interesting theoretical model, but ... its attractiveness as a fundamental model for complexity theory is questionable. Its time measure is based on uniform time in a context where this measure is known to underestimate the true time complexity. The same observation holds for the space measure for the machine" (van Emde Boas (1990) p. 35)
Gurevich also expresses concern:
:"Pragmatically speaking, the Schönhage model provides a good measure of time complexity at the current state of the art (though I would prefer something along the lines of the random access computers of Angluin and Valiant)".
Schönhage demonstrates the real-time equivalences of two types of random-access machine
In computer science, random-access machine (RAM or RA-machine) is a model of computation that describes an abstract machine in the general class of register machines. The RA-machine is very similar to the counter machine but with the added capab ...
with the SMM.[
Algorithms in the SMM model: Schönhage demonstrates that the SMM can perform integer multiplication in linear time.][
Potential uses for the model: Gurevich wonders whether or not a parallel KU machine "resembles somewhat the human brain"
Parallel computing: All the models mentioned above are sequential. A parallel (atomistic) pointer machine model has been proposed by Cook and Dymond; a high-level (non-atomistic) parallel pointer machine model has also been used]
See also
Register machine
In mathematical logic and theoretical computer science, a register machine is a generic class of abstract machines, analogous to a Turing machine and thus Turing complete. Unlike a Turing machine that uses a tape and head, a register machine u ...
—generic register-based abstract machine computational model
*Counter machine
A counter machine or counter automaton is an abstract machine used in a formal logic and theoretical computer science to model computation. It is the most primitive of the four types of register machines. A counter machine comprises a set of on ...
—most primitive machine, base models' instruction-sets are used throughout the class of register machines
*Random-access machine
In computer science, random-access machine (RAM or RA-machine) is a model of computation that describes an abstract machine in the general class of register machines. The RA-machine is very similar to the counter machine but with the added capab ...
—RAM: counter machine with added indirect addressing capability
* Random-access stored-program machine—RASP: counter-based or RAM-based machine with a "program of instructions" to be found in the registers themselves in the manner of a Universal Turing machine i.e. the von Neumann architecture
The von Neumann architecture—also known as the von Neumann model or Princeton architecture—is a computer architecture based on the '' First Draft of a Report on the EDVAC'', written by John von Neumann in 1945, describing designs discus ...
.
Turing machine
A Turing machine is a mathematical model of computation describing an abstract machine that manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, it is capable of implementing any computer algori ...
—generic tape-based abstract machine computational model
* Post–Turing machine—minimalist one-tape, two-direction, 1 symbol Turing-like machine but with default sequential instruction execution in a manner similar to the basic 3-instruction counter machines.
Further reading
Most references and a bibliography are to be found at the article Register machine
In mathematical logic and theoretical computer science, a register machine is a generic class of abstract machines, analogous to a Turing machine and thus Turing complete. Unlike a Turing machine that uses a tape and head, a register machine u ...
. The following are particular to this article:
* Amir Ben-Amram (1995)
''What is a "Pointer machine"?''
SIGACT News (ACM Special Interest Group on Automata and Computability Theory)", volume 26, 1995. Wherein Ben-Amram describes the types and subtypes: (type 1a) Abstract Machines: Atomistic models including Kolmogorov-Uspenskii Machines (KUM), Schönhage's Storage Modification Machines (SMM), Knuth's "Linking Automaton", APLM and AFLM (Atomistic Pure-LISP Machine) and (Atomistic Full-LISP machine), General atomistic Pointer Machines, Jone's I Language; (type 1b) Abstract Machines: High-level models, (type 2) Pointer algorithms.
* Yuri Gurevich (2000), ''Sequential Abstract State Machines Capture Sequential Algorithms'', ACM Transactions on Computational Logic, vol. 1, no. 1, (July 2000), pages 77–111. In a single sentence Gurevich compares the Schönhage 980
Year 980 ( CMLXXX) was a leap year starting on Thursday of the Julian calendar.
Events
By place Europe
* Peace is concluded between Emperor Otto II (the Red) and King Lothair III (or Lothair IV) at Margut, ending the Franco-Germa ...
"storage modification machines" to Knuth's "pointer machines." For more, similar models such as "random access machines" Gurevich references:
** John E. Savage (1998)
''Models of Computation: Exploring the Power of Computing''
Addison Wesley Longman.
* Yuri Gurevich (1988),
On Kolmogorov Machines and Related Issues
', the column on "Logic in Computer Science", Bulletin of European Association for Theoretical Computer Science, Number 35, June 1988, 71-82. Introduced the unified description of Schönhage and Kolmogorov-Uspenskii machines used here.
* Arnold Schönhage (1980), ''Storage Modification Machines'', Society for Industrial and Applied Mathematics, SIAM J. Comput. Vol. 9, No. 3, August 1980. Wherein Schönhage shows the equivalence of his SMM with the "successor RAM" (Random Access Machine), etc. He refers to an earlier paper where he introduces the SMM:
** Arnold Schönhage (1970), ''Universelle Turing Speicherung'', Automatentheorie und Formale Sprachen, Dörr, Hotz, eds. Bibliogr. Institut, Mannheim, 1970, pp. 69–383.
* Peter van Emde Boas, ''Machine Models and Simulations'' pp. 3–66, appearing in:
:: Jan van Leeuwen, ed. ''Handbook of Theoretical Computer Science. Volume A: Algorithms and Complexity'', The MIT PRESS/Elsevier, 1990. (volume A).
:van Emde Boas' treatment of SMMs appears on pp. 32-35. This treatment clarifies Schönhage 1980 -- it closely follows but expands slightly the Schönhage treatment. Both references may be needed for effective understanding.
References
{{Reflist
Register machines