models to classical computability. Refer to [9–11] for surveys on analog compu-
tation with a point of view based on computation theory aspects, or to [12–14]
for surveys discussing historical and technological aspects. In particular, sev-
eral authors revisited the General Purpose Analog Computer (GPAC) model of
Shannon [15]. Following [16], this model can essentially be abstracted as corre-
sponding to (vectorial) polynomial ordinary differential equations: That is to say,
as dynamics over R
d
corresponding to solutions of ODEs of the form y
0
= p(y)
where y(t) ∈ R
d
is some function of time, and p : R
d
→ R
d
is (componentwise)
polynomial, and d is some integer. If some initial condition is added, this is also
called a polynomial Initial Value Problems (pIVP).
We do not intend to repeat here the full story, but in short, two main notions
of computations by pIVP have been introduced: the notion of GPAC-generated
function, corresponding to the initial notion from Shannon in [15], and the notion
of GPAC-computable function. This latter notion of computability is now known
to be equivalent to classical computability [17]. It is also possible to talk about
complexity theory in such models: It has been established that this is indeed
possible, if measuring time of computation as the length of the solution [7]. This
has been recently extended to space complexity in [18], or to exponential time
and the Grzegorczyk hierarchy[19].
All these statements have been obtained by realizing that continuous time
processes defined by ODEs, and even defined by polynomial ODEs, can simulate
various discrete time processes. They hence can be used to simulate models such
as Turing machines [20, 2], and even some more exotic models working with a
discrete time but over continuous data. This is based on various refinements of
constructions done in [20, 2, 1, 3, 4]. We call this ODE programming, as this is
indeed some kind of programing with various continuous constructions.
Forgetting analog machines or models of computation, it is important to re-
alize that ODEs is a kind of universal language of mathematics that is used in
many, if not all, experimental sciences: Physics, Biology, Chemistry, . . . . Conse-
quently, once it is known that one can program with ODEs, many questions ask-
ing about universality, or computations, in experimental contexts can be solved.
This is exactly what has been done by several authors, including ourselves, to
solve various open problems, in various contexts such as applied maths, com-
puter algebra, biocomputing. . . We do not intend here to be exhaustive about
various applications, but we describe some of them.
Some applications of ODE programming:
– Implicit complexity: computability: Concepts such as being computable
for a function over the reals (in the sense of computable analysis) can be
described using ODEs only, i.e., with concepts from analysis only, and no-
reference to computational models such as Turing machines.
Theorem 1 ([17]). Let a and b be computable reals. A function f : [a, b] →
R is computable in the sense of computable analysis iff there exist some
polynomials with rational coefficients p : R
n+1
→ R
n
, some polynomial p
0
: