- C. Hankin
- H. R. Nielson
A number of programming paradigms have been identified, including object-oriented, concurrent, applicative (functional), declarative (logic), as well as imperative. Some of these are more successful than others but no single paradigm seems adequate for all aspects of software production; an example being the meaningful exploitation of the massive paralellism offered by current and future hardware. There appear to be two ways forward: integration of paradigms taking the best from each or the development of coordination mechanisms which support inter-language working.
Integration of paradigms necessitates a deeper understanding of the design methodologies, the semantic basis, the techniques for analysis, transformation and implementation, and the application in the construction of sofware as well as the verification of the ensuing systems. These problems may be approached via the development of integrated languages or may be studied through the design of calculi that exhibit the essential features. In the past the study of the lambda-calculus and calculi for concurrency have helped in providing a breakthrough in our understanding of functional languages and concurrent systems and calculi for objectorientation are on their way.
Coordination languages are based on a model of concurrent computation in which agents cooperate via a shared data space, rather than message passing or shared variables. Examples range from collections of coordination primitives to be embedded in other languages, as in Linda, to pure coordination languages such as Gamma. Problems relating to semantics, (open systems) verification and static analysis are current research topics.
In both approaches, we anticipate that techniques of a deductive nature will prove essential for most theoretical studies: semantics is likely to be based on variations of operational semantics whose descriptive power surpasses that of denotational semantics and more recent semantic frameworks. Consequently analyses may profitably be based on inference systems (perhaps including type systems as special cases). To obtain efficient implementations the use of constraints seem beneficial. However, many problems still require unifying frameworks, not least those of transformation and implementation.
In order to ensure that there was a good interaction between the advocates of these two different approaches we started the meeting with a number of provocative talks related to language design. It was followed by discussions in small groups which later reported back in a plenary session. A major question that arose during these discussions concerned the need to identify concrete examples where integration of specific paradigms adds value; it was clearly felt that it did not make sense to integrate any arbitrary two paradigms. To introduce another dimension in the discussions we continued the meeting with a number of semantics related talks bringing in issues as analysis and verification of programs and systems. Again this was followed by a discussion session which partly was a continuation of the previous one and partly was concerned with the applicability of the semantic techniques to the various programming paradigms and their integration. The seminar concluded with a number of short talks showing a spectrum of other problems studied for multi-paradigmatic languages.
The Dagstuhl seminar provided an excellent opportunity for bringing together two hitherto disparate groups of scientists. Thanks to the engagement of the participants the seminar exposed a lot of interesting developments in this emerging and exciting area. By having ample time for discussions we improved our understanding of the differences and commonalities between the various approaches to integration of paradigms and we got valuable insights into how semantic issues are handled in the different settings.
- C. Hankin
- H. R. Nielson