A central challenge in computer science and knowledge representation i
s the integration of conceptual frameworks for continuous and discrete
change, as exemplified by the theory of differential equations and re
al analysis on the one hand, and the theory of programming languages o
n the other. We take the first steps towards such an integrated. theor
y by presenting a recipe for the construction of continuous programmin
g languages - languages in which state dynamics can be described by di
fferential equations. The basic idea is to start with an untimed langu
age and extend it uniformly over dense (real) time. We present a concr
ete mathematical model and language (the Hybrid concurrent constraint
programming model, Hybrid cc) instantiating these ideas. The language
is intended to be used for modeling and programming hybrid systems. Th
e language is declarative - programs can be understood as formulas tha
t place constraints on the (temporal) evolution of the system, with pa
rallel composition regarded as conjunction. It is expressive - it allo
ws the definition of continuous versions of the preemption control con
structs. The language is obtained by extending the general-purpose com
putational formalism of (default) concurrent constraint programming (D
efault cc) with a single temporal construct, called hence - hence A is
read as asserting that A holds continuously beyond the current instan
t. Various patterns of temporal activity can be generated from this si
ngle construct by use of the other combinators in Default cc. We provi
de a precise operational semantics according to which execution altern
ates between (i) points at which discontinuous change can occur, and (
ii) open intervals in which the state of the system changes continuous
ly. Transitions from a state of continuous evolution are triggered whe
n some condition starts or stops holding. We show that the denotationa
l semantics is correct for reasoning about the operational semantics,
through an adequacy theorem. (C) 1998 Elsevier Science B.V.