Abstract

We study termination of programs in concurrent higher-order languages. A higher-order concurrent calculus combines features of the λ -calculus and of the message-passing concurrent calculi. However, in contrast with the λ -calculus, a simply-typed discipline need not guarantee termination and, in contrast with message-passing calculi such as the π -calculus, divergence can be obtained even without a recursion (or replication) construct. We first consider a higher-order calculus where only processes can be communicated. We propose a type system for termination that borrows ideas from termination in rewriting systems (and following the approach to termination in the π -calculus in [3]). We then show how this type system can be adapted to accommodate higher-order functions in messages. Finally, we address termination in a richer calculus that includes localities and a passivation construct, as well as name-passing communication. We illustrate the expressiveness of the type systems on a few examples.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call