Computing with Continuous Change Vijay Saraswat Xerox PARC The model-based computing project at PARC is exploring the systematic development of software for simulating, diagnosing, controlling, documenting, and analyzing complex computational, electro-mechanical systems such as photo-copiers. Several areas of work in hybrid computing provide insights and techniques that are directly related to this enterprise. There has been very little work, however, on developing the conceptual foundations for programming with continuous change, for programming languages which allow state-transformations to be given via differential equations, for control constructs based on the reals. We present the design of extremely simple but general continuous languages. The fundamental abstraction is that of executing a (concurrent) program instantaneously to respond to interaction from the environment, at *every* real time instant. Such an abstraction is made realizable by introducing the idea that the program executing at a time instant changes only slowly --- though perhaps discretely --- with time. The programming of timeouts and interrupts is made possible through support for the instantaneous detection of the *absence* of information, not just its presence. The resulting language has very few primitive constructs, a very simple denotational and operational semantics, and can be compiled into hybrid automata of the form developed by ACCH93 and NOSY93. It allows the description of systems in a declarative and compositional manner, and is expressive enough to represent safety properties as part of the program. We present a number of equational laws for formally manipulating programs. We show that a very general combinator, that allows one process to be ``clocked'' by another process is expressible in the language. We present several programs that exploit continuous change. [Joint work with Radha Jagadeesan, Vineet Gupta and Danny Bobrow.]