|
CMU-CS-97-126
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-97-126
Idealized CSP:
Combining Procedures with Communicating Processes
Stephe Brookes
July 1997
To appear in the Proceedings of MFPS'97, Electronic Notes in
Theoretical Computer Science, Elsevier-North Holland, 1997.
Unavailable Electronically
Keywords: Programming language design, concurrency, semantics of
programming languages, communicating processes, procedures
Idealized CSP is a programming language combining simply typed, call-by-name
procedures with synchronous communicating processes. The language also
generalizes Reynolds' Idealized Algol by adding typed channels and the ability
to spawn parallel processes. Procedures permit the encapsulation of common
communication protocols and parallel programming idioms. Local variables and
local channel declarations provide a way to delimit the scope of interference
between parallel agents. The combination of procedures and communicating
parallelism raises significant semantic problems. We show -- perhaps
surprisingly, given the fundamental differences in underlying process
model -- that ideas used to model the combination of shared-variable
parallelism and procedures can be adapted to the communication-based setting.
This is further evidence in favor of the orthogonality of procedures and
concurrency, and also shows that the shared-variable and communication-based
paradigms have a lot in common, semantically. Our semantics introduces a
generalization of "transition traces" and "possible worlds", incorporating an
"object-oriented" treatment of channels. The semantics supports reasoning
about safety and liveness properties of processes at the same time as
validating natural laws of functional programming.
24 pages
|