ACM SDCR Workshop
Concurrency Working Group
Summary of Position Statements
The purpose of this document is to identify the major recurring themes in the
position statements of the Concurrency Working Group. It is hoped that such a
summary will serve as the starting point for the formation of the group's
position statement.
In reading through the statements, I identified the following themes:
- Debugging vs. Verification (Alur,Baeten,Henzinger): Is
the former all we can reasonably expect out of concurrency research (as opposed
to completely verified, provably correct systems)? A related distinction:
model-checking vs. theorem proving (and their integration).
- Education (Alur,Best,Groote): It seems unlikely that the
fruits of concurrency research will gain wide-spread acceptance and usage until
the user community is educated in these techniques. Such education should
start in the undergraduate curriculum.
- Integration of Formalisms
(Alur,Cleaveland,Groote,Henzinger,Hoare,Luginbuhl,Misra,Moller,Montanari,Pratt,Sifakis):
Integration or unification (Hoare) of concurrency theories could illuminate the
relationship between theories, and help identify selection criteria
for choosing among theories when confronted with a particular
application. Cleaveland points out that a modular approach to
semantics could facilitate integration. Montanari proposes causal
computing and Pratt proposes Chu spaces as unifying frameworks.
Groote raises the related issue of standardization.
- Integration with other Disciplines
(Alur,Baeten,Cleaveland,Luginbuhl,Misra,Montanari,Steffen): The proliferation
of embedded systems is a compelling reason for us to increase our
interaction with disciplines such as electrical, mechanical, aerospace
engineering, and control theory. Integration with other computer
science disciplines--e.g., databases, object-oriented programming,
constraint and logic programming, term and graph rewriting--should pay
dividends as well. Also, integration of concurrency-based formal methods
with software engineering is likely to yield a healthy synergy (Baeten and
Cleaveland).
- Correctness vis-a-vis Efficiency (Best,Gouda,Montanari):
Previous concurrency research has tended to treat these two fundamental issues
in a mutually exclusive fashion. Can we bridge this gap?
- Non-functional requirements
(Baeten,Luginbuhl,Prasad,Sifakis,Smolka,Thomsen): Concurrent
systems, unlike their sequential counterparts, must contend with the following
non-functional requirements: real-time, fault-tolerance, security,
reliability, probability, availability, mobility, continuous behavior (hybrid
systems), etc. Mobility, and the related area of high-order process calculi
(e.g. the pi-calculus), are specifically addressed by Montanari, Prasad, and
Thomsen.
- Programming language development
(Best,Cleaveland,Miller,Misra,Sifakis,Thomsen): The
development of programming languages with strong foundations in concurrency
theory should greatly aid the design, coding, and verification of concurrent
systems. As pointed out by Thomsen, such an approach could eliminate the gap
between the model and implementation of a system. A well-designed language
could also promote portability without limiting parallelism (Best).
- Algorithmic challenges (Alur,Moller,Smolka,Wolper):
Algorithmic advances are needed in order to better cope with the state space
explosion problem inherent in concurrency specifications.
- Tool development
(Groote,Miller,Moller,Smolka,Steffen,Thomsen,Wolper): As safety
critical systems become more and more complex, the need for automated support
for verification becomes even more important. Also, we need to seriously
confront the problems facing many existing tools: bugs, lack of scalability,
lack of portability, etc. As pointed out by Wolper, "algorithmic support" is
needed for successful tool development.
- Real applications
(Groote,Luginbuhl,Smolka,Steffen,Thomsen): Taking on real-world applications
will allow us to evaluate the utility of our methods and at the same time
improve the quality of the applications we target.
- Other topics: Other topics that stood out are processes
and data, testing, infinite-state systems, and the role of linear logic in
modeling concurrency.