# The Generic Model of Computation

#### Abstract

state machines (ASMs), invented by Yuri Gurevich [24], constitute a most general model of computation, one that can operate on any desired level of abstraction of data structures and native operations. All (ordinary) models of computation are instances of this one generic paradigm. Here, we give an overview of the foundational considerations underlying the model (cobbled together primarily from [18, 3, 12]).1 Programs (of the sequential, non-interactive variety) in this formalism are built from three components: • There are generalized assignments f (s1, . . . ,sn) := t, where f is any function symbol (in the vocabulary of the program) and the si and t are arbitrary terms (in that vocabulary). • Statements may be prefaced by a conditional test, if C then P or if C then P else Q, where C is a propositional combination of equalities between terms. • Program statements may be composed in parallel, following the keyword do, short for do in parallel. An ASM program describes a single transition step; its statements are executed repeatedly, as a unit, until no assignments have their conditions enabled. (Additional constructs beyond these are needed for interaction and large-scale parallelism, which are not dealt with here.) As a simple example, consider the program shown as Algorithm 1, describing a version of selection sort, where F(0), . . . ,F(n− 1) contain values to be sorted, F being a unary function symbol. Initially, n ≥ 1 is the quantity of values to be sorted, i is set to 0, and j to 1. The brackets indicate statements that are executed in parallel. The program proceeds by repeatedly modifying the values of i and j, as well as of locations in F , referring to terms F(i) and F( j). When all conditions fail, that is, when j = n and i+ 1 = n, the values in F have been sorted vis-à-vis the black-box relation “>”. The program halts, as there is nothing left to do. (Declarations and initializations for program constants and variables are not shown.) This sorting program is not partial to any particular representation of the natural numbers 1, 2, etc., which are being used to index F . Whether an implementation uses natural language, or decimal numbers, 1For a video lecture of Gurevich’s on this subject, see http://www.youtube.com/v/7XfA5EhH7Bc. 60 Generic Model of Computation Algorithm 1 An abstract-state-machine program for sorting. if j = n then if i+1 6= n then do 

DOI: 10.4204/EPTCS.88.5

### Cite this paper

@inproceedings{Dershowitz2011TheGM, title={The Generic Model of Computation}, author={Nachum Dershowitz}, booktitle={DCM}, year={2011} }