@InProceedings{Demaine97, title = "{H}igher-{O}rder {C}oncurrency in {J}ava", author= "Demaine, Erik D.", editor= "Bakkers, Andr\`{e} W. P.", pages = "34--47", booktitle= "{P}roceedings of {W}o{TUG}-20: {P}arallel {P}rogramming and {J}ava", isbn= "90 5199 336 6", year= "1997", month= "mar", abstract= "In this paper we examine an extension to Hoare's Communicating Sequential Processes model called higher-order concurrency, proposed by Reppy. In this extension, communication algorithms (or 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 Reppy's Concurrent ML system. 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." }