Nebenläufige Programmiermodelle

Concurrent Programming Models

If you can read this, your browser provides insufficient support for style
sheets. The visual presentation of this document will suffer.

The project is conducted within the Sonderforschungsbereich 378 "Ressourcenadaptive kognitive Prozesse" (resource adaptive cognitive processes) and is funded by the German Research Foundation (Deutsche Forschungsgemeinschaft).

Programming models are models of computation which are appropriate as a foundation for the design, the analysis and the implementation of programming languages. For example, consider the lambda calculus (functional programming) and SLD resolution (logic programming). A programming model consists of a small number of orthogonal constructs for the modelling of programming abstractions.

The starting point for the NEP project is the gamma calculus and the concurrent programming language Oz built on top of it. The gamma calculus is an inherently concurrent programming model which builds on concepts from the pi calculus and from concurrent constraint programming. The gamma calculus subsumes functional computation and allows one to express a variety of programming abstractions. The project will deal with the following five areas of research.

The gamma calculus shall be extended by locations (abstracting from networked computers) such that programs may spread their computations over different locations. Distribution shall be semantically transparent. On the other hand, distribution shall allow explicit control of which computations take place on which locations.

A concept of agents shall be developed for the gamma calculus which allows the modelling of agents as first-class citizens which can be suspended, reactivated, and migrated amongst locations. An abstract model of ressources for agents shall allow to express and monitor the consumption of CPU time and memory per agents.

The relationship between the gamma calculus and clocked computation shall be investigated. For example, one could distinguish subrecursive fragments of the gamma calculus with a guaranteed maximal computation time. The goal is an appropriate embedding of synchronious real time programming into the gamma calculus.

Structural invariants of the gamma calculus shall be investigated by means of type systems. Complementary work shall investigate constraint based methods for the automated derivation of type information from programs.

A semantic theory for the gamma calculus needs to be developed. As a starting point, we consider the bisimulation techniques developed for CCS and the pi-calculus.

Martin Henz, Martin Müller, Joachim Niehren, Gert Smolka

Denys Duchier