The Challenge of Typed Expressiveness in Concurrency Jorge A. Pérez University of Groningen & CWI, Amsterdam Open Problems in Concurrency Theory Vienna, June 27, 2017
This Talk, In One Slide My view on the need for mature foundations for communication , distribution , and types
Based on a FORTE 2016 paper
The Future (According to Gartner) Communication and distribution at a (very) large-scale: • 2018: 6 billion connected ‘things’ requesting support • 2020: Autonomous agents part of 5% of all transactions • 2020: Smart agents facilitate 40% of mobile interactions
The Present: Languages Promoted by Industry • Facebook’s Flow (gradual types for JavaScript) • Google’s Go (concurrency, message-passing communication) • Mozilla’s Rust (affine references/ownership types) • Erlang (actor-based concurrency) The Future (According to Gartner) Communication and distribution at a (very) large-scale: • 2018: 6 billion connected ‘things’ requesting support • 2020: Autonomous agents part of 5% of all transactions • 2020: Smart agents facilitate 40% of mobile interactions
Communication & Types: Here to Stay! The Present: Languages Promoted by Industry • Facebook’s Flow (gradual types for JavaScript) • Google’s Go (concurrency, message-passing communication) • Mozilla’s Rust (affine references/ownership types) • Erlang (actor-based concurrency) The Future (According to Gartner) Communication and distribution at a (very) large-scale: • 2018: 6 billion connected ‘things’ requesting support • 2020: Autonomous agents part of 5% of all transactions • 2020: Smart agents facilitate 40% of mobile interactions
We Need Foundations. But Which Ones? Much research on models of concurrency and communication. • Petri Nets, graph transformation & rewriting techniques, declarative formalisms, process calculi , etc Process calculi already support communication and types: • Simple formalization of message-passing concurrency • Basis for type systems for concurrent programs Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 5 / 30
We Need Foundations. But Which Ones? Much research on models of concurrency and communication. • Petri Nets, graph transformation & rewriting techniques, declarative formalisms, process calculi , etc Process calculi already support communication and types: • Simple formalization of message-passing concurrency • Basis for type systems for concurrent programs Challenges • Many different foundations for types and communication → No single notion of correctness, but many! • How to transfer their analysis techniques into practice? • How to relate the tools derived from the different foundations? → A “Chomsky hierarchy” of [typed] concurrent languages? Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 5 / 30
This Talk: A Plea for Typed Expressiveness • We need rigorous comparisons between well-established (but distinct) typed process frameworks - New bridges between different typed models - Understand complementarities of their analysis techniques • Clear practical significance, given reality and trends in IT Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 6 / 30
This Talk: A Plea for Typed Expressiveness • We need rigorous comparisons between well-established (but distinct) typed process frameworks - New bridges between different typed models - Understand complementarities of their analysis techniques • Clear practical significance, given reality and trends in IT My Claim: Maturity via Expressiveness • We may build upon approaches to relative expressiveness , as studied in concurrency theory • Fruitful in the untyped setting, they should elucidate connections in a typed setting Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 6 / 30
Outline Expressiveness in Concurrency Towards Relative Expressiveness for Behavioral Types Future Directions Concluding Remarks (and Shameless Publicity) Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 7 / 30
Untyped Expressiveness: Key Ideas Many efforts on assessing the expressivity of process calculi. Typical questions: • What is the nature of a process construct? • Can we transfer reasoning techniques across languages? Main technical device: Language encodings • Translate a source language L S into a target language L T satisfying certain encodability criteria • Criteria represent abstract indicators of an encoding’s quality; they can be syntactic or semantic • No agreement on “good encodings”... Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 8 / 30
Untyped Expressiveness: Outcomes Encodability results: • A positive encodability result → All behaviors expressible in L S can also be expressed in L T • A negative encodability result → There are behaviors expressible in L S but not in L T Combinations of results may indicate expressiveness gaps. Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 9 / 30
Sucesses of Untyped Expressiveness Encodability results have clarified our understanding on interaction and communication as abstracted by process calculi. • Formally relate different computational models - Encoding the λ -calculus in the π -calculus [cf. Milner] - (Un)decidability of termination/convergence in CCS [cf. Busi et al] • Assess the expressive power of process languages - The interplay of choice and (a)synchronous communication, and its influence on the π -calculus [cf. Palamidessi, Honda, Boudol] • Transfer proof techniques between different calculi - Encoding of process mobility into name mobility: key to the behavioral theory of higher-order process calculi [cf. Sangiorgi] Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 10 / 30
Outline Expressiveness in Concurrency Towards Relative Expressiveness for Behavioral Types Future Directions Concluding Remarks (and Shameless Publicity) Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 11 / 30
Type Systems for Concurrency The development of process languages with type-based techniques has received much attention Type systems have revealed a rich landscape of concurrent models with disciplined communication Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 12 / 30
Behavioral Type Systems • In contrast to usual data types, behavioral types represent causality, alternatives, repetition. • A behavioral type for a communication channel defines - its resource-usage policy - the series of actions realized through that channel along time • Often defined on top of process calculi. General verification techniques that may be tailored to different actual languages • A notable class of behavioral types: session types Jorge A. Pérez The Challenge of Typed Expressiveness in Concurrency 13 / 30
Behavioral Types: An Incomplete Timeline Sortings for the π -calculus 1990 [Milner] 1991 2017
Behavioral Types: An Incomplete Timeline Sortings for the π -calculus 1990 [Milner] 1991 Type & Effect System for CML [Nielson & Nielson] Types for Dyadic Interaction 1993 1993 [Honda] 1994 A Typed Interaction-based Language [Takeuchi et al.] 1996 Linear Types for π [Kobayashi et al.] 1997 Types for Deadlock-freedom in π [Kobayashi] 1998 Binary Session Types [Honda et al.] 2017
Behavioral Types: An Incomplete Timeline Sortings for the π -calculus 1990 [Milner] 1991 Type & Effect System for CML [Nielson & Nielson] Types for Dyadic Interaction 1993 1993 [Honda] 1994 A Typed Interaction-based Language [Takeuchi et al.] 1996 Linear Types for π [Kobayashi et al.] 1997 Types for Deadlock-freedom in π [Kobayashi] 1998 Binary Session Types [Honda et al.] 2000 Types for Non-Uniform Objects [Ravara & Vasconcelos] 2001 Generic Process Types [Igarashi & Kobayashi] Spatial-behavioral Types [Caires] Multiparty Session Types [Honda et al.] 2008 2008 2017
Behavioral Types: An Incomplete Timeline Sortings for the π -calculus 1990 [Milner] 1991 Type & Effect System for CML [Nielson & Nielson] Types for Dyadic Interaction 1993 1993 [Honda] 1994 A Typed Interaction-based Language [Takeuchi et al.] 1996 Linear Types for π [Kobayashi et al.] 1997 Types for Deadlock-freedom in π [Kobayashi] 1998 Binary Session Types [Honda et al.] 2000 Types for Non-Uniform Objects [Ravara & Vasconcelos] 2001 Generic Process Types [Igarashi & Kobayashi] Spatial-behavioral Types [Caires] Multiparty Session Types [Honda et al.] Conversation Types [Caires & Vieira] 2008 2008 Parameterized Multiparty Session Types [Yoshida et al.] 2009 Linear Session Types, Revisited 2010 2010 2010 [Giunti & Vasconcelos] Session Types as Linear Logic [Caires & Pfenning] 2017
Recommend
More recommend