Higher-Order Concurrency in Java

Erik Demaine

Department of Computer Science
University of Waterloo
Waterloo, ON Canada N2L 3G1


Communicating Sequential Processes (CSP) is a classic model proposed by Hoare where multiple processes (or threads) execute concurrently, and communicate to each other through ``channels.'' In this talk, we examine an extension to CSP called higher-order concurrency, proposed by Reppy. In this extension, communication protocols (called events) are first-class objects and can be created and manipulated dynamically. In addition, threads are automatically garbage collected and channels are first-class, that is, they can be passed over other channels. We describe the design of a Java package that implements the main features of higher-order concurrency, with similar ease-of-use to Concurrent ML, the only other implementation of higher-order concurrency. Our implementation can be easily extended to use a distributed system, which is a major limitation with Concurrent ML. We also hope to bring the idea of higher-order concurrency to a wider audience, since it is extremely powerful and flexible, but currently only well known to the programming-languages community.

Colloquia Series page.