λir : A language with intensional receive

Thumbnail Image
Date
2017-01-01
Authors
Priya, Swarn
Major Professor
Advisor
Gianfranco Ciardo
Committee Member
Journal Title
Journal ISSN
Volume Title
Publisher
Altmetrics
Abstract

Message passing-based programming is one of the dominant concurrent programming models today in both research and practice. The major challenge in message passing concurrency is to reason about the type of message received by any process and its effect. We present λir, a message passing-based language that incorporates an intensional design of the receive expression to solve this problem. Intensional design of receive expression integrates static and dynamic type checking and allows the effect of the message received to be intensionally inspected through a notion of dynamic typing. This enables reasoning about the effect of the message received from the head of the mailbox while retaining static type safety. We demonstrate the applications of intensional design of receive expression in various programming patterns like multiplexing, safe pipelining, encoding state machines and supporting the chain of responsibility pattern. In each of these applications, intensional receive helps in providing better safety. We have also formalized λir using the Coq proof assistant and prove its soundness. λir provides built-in proofs for guaranteed delivery of messages and encodes actions as an integral part that makes it possible to describe and prove properties about happens-before relations. λir comes with a range of extensions like broadcasting, multicasting, guarded receive, non-blocking receive, and synchronization primitive "wait" that not only provide insights into the extensibility

of the calculus, but also provide pedagogical examples of how it can be extended.

Series Number
Journal Issue
Is Version Of
Versions
Series
Academic or Administrative Unit
Type
thesis
Comments
Rights Statement
Copyright
Sun Jan 01 00:00:00 UTC 2017
Funding
Subject Categories
Supplemental Resources
Source