The emergence of new computing systems, like cloud computing, blockchains, and Internet of Things (IoT), replaces the traditional monolithic software hardware stack with a distributed heterogeneous model. This change poses new demands on the programming languages for developing such systems: compositionality, allowing decomposition of a system into smaller, possibly heterogeneous parts and composition of the individually verified parts into a verified whole; security, asserting end-to-end integrity and confidentiality; quantitative reasoning methods, accounting for timing and probabilistic events; and, as a cross-cutting concern, certification of asserted properties in terms of independently verifiable, machine-checked proofs.
Characteristics of this emerging computation model are distribution of the participating entities and message passing as the primary means of communication. Message passing is also the communication model underlying behavioral types and programming languages, making them uniquely fitted for this new application domain. Behavioral types explicitly capture the protocols of message exchange and have a strong theoretical foundation. Recent applications of behavioral types include smart contract languages, information flow control, and machine-checked proofs of safety properties. Although these early explorations are promising, the current state of the art of behavioral types and programming languages lacks a comprehensive account of the above-mentioned demands.
This Dagstuhl Seminar aims to gather experts from academia and industry to discuss the use of programming languages tailored to tackle the challenges posed by today's emerging distributed and heterogeneous computing platforms (e.g., by making use of behavioral types). It will focus on static and possibly dynamic mechanisms to support compositionality, security, quantitative reasoning, and certification.
- Programming Languages
- behavioral types
- session types