- When: 5th June 2017 13:00 - 14:00
- Where: Cole 1.33a
- Format: Seminar
Session types codify communication patterns, giving developers guarantees that applications satisfy predefined protocols. Session types have come a long way from their theoretical roots: recent work has seen the implementation of static analysis tools; embeddings into a multitude of programming languages; and the integration of session types into languages as a first-class language construct.
Work at Edinburgh has concentrated on the latter. Lindley and Morris have extended the experimental functional programmming language Links with session-typed hannels in a multithreaded setting.
Distribution, however, brings challenges such as failure and the need for distributed channel delegation algorithms. In this talk, I will demonstrate and discuss the design and implementation of session types in Links. I will describe my recent work on adding support for distribution to Links, allowing the creation of session-typed, multi-user web applications.
Finally, I will describe recent, in-progress, work on a static type system and semantics allowing the controlled relaxation of the requirement of *linearity* (that
every endpoint must be used exactly once) to that of affinity (that every endpoint must be used at most once) in order to account for the question of users leaving a session midway through, and describe how the system still retains core metatheoretic pro