Over the past two decades, Yuri Gurevich and his colleagues have formulated axiomatic foundations for the notion of algorithm, be it classical, interactive, or parallel, and formalized them in the new generic framework of abstract state machines. This approach has recently been extended to suggest a formalization of the notion of effective computation over arbitrary countable domains. The central notions are summarized herein.
BackgroundAbstract 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 (s 1 , . . . , s n ) := t, where f is any function symbol (in the vocabulary of the program) and the s i 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, 1 For a video lecture of Gurevich's on this subject, see http://www.youtube.com/v/7XfA5EhH7Bc.
Generic Model of ComputationAlgorithm 1 An abstract-state-machine program for sorting.Algorithm 2 An abstract-state-machine program for bisection search.or binary strings is immaterial, as long as addition behaves as expected (and equality and disequality, too). Furthermore, the program will work regardless of the domain from which...