Blogs (28) >>
ECOOP 2016
Sun 17 - Fri 22 July 2016 Rome, Italy
Thu 21 Jul 2016 14:10 - 14:35 at Auditorium Loyola - Session 5 Chair(s): Kim Bruce
Designing, developing and maintaining concurrent applications is an error-prone and time-consuming task; most difficulties arise because compilers are usually unable to check whether the inputs/outputs performed by a program at runtime will adhere to a given protocol specification. To address this problem, we propose lightweight session programming in Scala: we leverage the native features of the Scala type system and standard library, to introduce (1) a representation of session types as Scala types, and (2) a library, called lchannels, with a convenient API for session-based programming, supporting local and distributed communication. We generalise the idea of Continuation-Passing Style (CPS) protocols, studying their formal relationship with session types. We illustrate how session programming can be carried over in Scala: how to formalise a communication protocol, and represent it using Scala classes and lchannels, letting the compiler help spotting protocol violations. We attest the practicality of our approach with a complex use case, and evaluate the performance of lchannels with a series of benchmarks.

Thu 21 Jul

13:45 - 15:00: Research Track - Session 5 at Auditorium Loyola
Chair(s): Kim BrucePomona College
ecoop-2016-papers13:45 - 14:10
Luminous FennellUniversity of Freiburg, Germany, Peter ThiemannUniversity of Freiburg
Link to publication DOI Media Attached
ecoop-2016-papers14:10 - 14:35
Alceste ScalasImperial College London, Nobuko YoshidaImperial College London, UK
Link to publication DOI Media Attached
ecoop-2016-papers14:35 - 15:00
Esben AndreasenAarhus University, Colin GordonDrexel University, Satish ChandraSamsung Research America, Manu SridharanSamsung Research America, Frank TipSamsung Research America, Koushik SenUniversity of California, Berkeley
Link to publication DOI Pre-print Media Attached