Concurrent
Constraint Programming for Time Critical Applications ESPRIT Working Group
F.S. de Boer
Objectives
Many applications in, for example,
robotics, worldwide information networks, decision support systems, distributed multimedia
computing and deductive temporal databases have time-critical aspects. However,
programming concepts related to time have been mainly developed in the context of
imperative programming. On the other hand a declarative programming style, since it
reduces the gap between specifications and programs, facilitates the development,
maintenance and modification of programs. Declarative programming is supported both by
functional and logic languages. Logic languages have the further advantage that they allow
simple concurrent extensions and they can naturally be integrated with constraint
programming. Moreover, due to their explicit logical nature, they allow quite simple
methodologies for program correctness. For these reasons, we believe that logic languages
are natural candidates to deal with the difficulties of time-critical applications: Some
of these difficulties can be better resolved within a framework which facilitates the
transition from specifications to programs, supports rapid prototyping, allows simple
paralellization and results in smaller programs.
The objective of this project is thus
the investigation of time-critical applications within the paradigm of concurrent logic
and constraint languages. More specifically, we aim at the design and development of a
declarative logic language based on extensions of concurrent constraint programming. These
extensions will consist of the introduction of real-time control structures and constraint
domains for temporal
reasoning. The design decisions will be based on the particular applications we will
consider. Furthermore, we aim at the development of techniques for verification and
analysis of programs, extending the existing methodologies for logic languages.
Approach and methodology
The overall approach is to develop and
integrate programming concepts related to time with existing concurrent (constraint) logic
languages. More specifically, the overall approach will be structured along the following
lines: First we aim at an identification and classification of the kind of industrial
time-critical applications most suited for a declarative programming style. The resulting
classes of possible applications then will form the basis of an investigation of what are
the most promising extensions of which existing constraint logic languages. This latter
investigation will result in an outline of the design issues involved and will thus
provide the necessary input for the actual development, implementation and application of
the languages outlined, which includes also the development of techniques for verification
and analysis of programs.
The research activities of the working
group are coordinated by the organisation of a workshop of four days each nine months.
Besides these workshops the main scientific interactions will take place in the form of
exchanges of personnel, i.e. visits of researchers from one site to another site.
In order to identify industrially
relevant applications and to maintain interaction with the synchronous community we have
installed a steering committee with representatives of both industry and the synchronous
community.
Exploitation of expected results
Most industrial applications involve in
a critical sense timing constraints. In particular, the commitment to a declarative
programming style will be especially important for applications arising in robotics
(including the area of intelligent software agents), worldwide information networks,
temporal deductive databases, distributed multimedia computing, decision support systems.
University of Utrecht,
Department of Computer Science
P.O. Box 80089
3508 TB Utrecht
The Netherlands.
Tel: 30 2533193, Fax: 30 2513791
Email: frankb@cs.ruu.nl. |