Nara, Japan
Higher-Order Programming with Effects
A recurring theme in many papers at ICFP, and in the research of many ICFP attendees, is the interaction of higher-order programming with various kinds of effects: storage effects, I/O, control effects, concurrency, etc. While effects are of critical importance in many applications, they also make it hard to build, maintain, and reason about one's code. Higher-order languages (both functional and object-oriented) provide a variety of abstraction mechanisms to help "tame" or "encapsulate" effects (e.g. monads, ADTs, ownership types, typestate, first-class events, transactions, Hoare Type Theory, session types, substructural and region-based type systems), and a number of different semantic models and verification technologies have been developed in order to codify and exploit the benefits of this encapsulation (e.g. bisimulations, step-indexed Kripke logical relations, higher-order separation logic, game semantics, various modal logics). But there remain many open problems, and the field is highly active.
The goal of the HOPE workshop is to bring researchers from a variety of different backgrounds and perspectives together to exchange new and exciting ideas concerning the design, semantics, implementation, and verification of higher-order effectful programs.
We want HOPE to be as informal and interactive as possible. The program will thus involve a combination of invited talks, contributed talks about work in progress, and open-ended discussion sessions. There will be no published proceedings, but participants will be invited to submit working documents, talk slides, etc. to be posted on this website.
Welcome and Invited Talk |
|
09:00 | Introduction
Aleks Nanevski and Lars Birkedal |
09:15 |
Effective programming: bringing algebraic effects and handlers to OCaml
Leo White |
10:15 | Coffee Break |
Session 1 |
|
10:45 | Effects as Capabilities
Fengyun Liu, Nicolas Stucki, Sandro Stucki, Nada Amin and Martin Odersky |
11:15 |
A Logical Account of a Type-and-Effect System
Morten Krogh-Jespersen, Kasper Svendsen and Lars Birkedal |
11:45 |
Simple Dependent Polymorphic I/O Effects
Amin Timany and Bart Jacobs |
12:15 | Lunch |
Session 2 |
|
14:00 |
Concurrent Data Structures Linked in Time
Germán Andrés Delbianco, Ilya Sergey, Aleksandar Nanevski and Anindya Banerjee |
14:30 |
Growing a Proof Assistant
William Bowman |
15:00 | Coffee Break |
Session 3 |
|
15:30 |
Type Directed Compilation of Row-typed Algebraic Effects
Daan Leijen |
16:00 |
Administrative normal form, continued: Sharing control in direct style
Luke Maurer, Paul Downen, Zena Ariola and Simon Peyton Jones |
16:30 | Coffee Break |
Session 4 |
|
17:00 |
Functional models of full ground, and general, reference cells
Ohad Kammar and Sean Moss |
Leo White, Jane Street
Algebraic effects were originally introduced to study the semantics of computational effects. With the addition of handlers they have become an exciting new programming construct for implementing such effects. Languages such as Eff have demonstrated that handlers can be used as a more composable alternative to monads for implementing effects in a pure language.
OCaml provides many standard effects, such as mutable state, built into the language. Those effects not built into the language, for example concurrency, are traditionally implemented using monads. The first part of this talk will describe work to implement native algebraic effects for OCaml. The original motivation for this work was to provide built-in support for concurrency in OCaml without tying the language to a particular concurrency implementation. However, algebraic effects support many interesting examples beyond concurrency.
As with exceptions, algebraic effects risk being performed in a context where they will not be handled. Type systems designed to track the side-effects of expressions have been around for many years, and seem eminently suitable for ensuring all algebraic effects are appropriately handled. Recent developments in languages such as Koka have begun to produce effect systems that are genuinely usable, but they have yet to breakthrough into a more mainstream language. The second part of this talk will describe work to integrate an effect system into OCaml whilst maintaining backwards compatibility. This system both prevents effects from going unhandled and turns OCaml into a pure functional language: successfully tracking the purity of functions through their types.
The talk will discuss the interesting questions and challenges that still remain before this work is ready for release into OCaml.
This is joint work with Stephen Dolan, Matija Pretnar and KC Sivaramakrishnan.
We solicit proposals for contributed talks. We recommend preparing proposals of at most 2 pages, in either plain text or PDF format. However, we will accept longer proposals or submissions to other conferences, under the understanding that PC members are only expected to read the first two pages of such longer submissions. When submitting talk proposals, authors should specify how long a talk the speaker wishes to give. By default, contributed talks will be 30 minutes long, but proposals for shorter or longer talks will also be considered. Speakers may also submit supplementary material (e.g. a full paper, talk slides) if they desire, which PC members are free (but not expected) to read.
We are interested in talks on all topics related to the interaction of higher-order programming and computational effects. Talks about work in progress are particularly encouraged. If you have any questions about the relevance of a particular topic, please contact the PC chairs, Aleks Nanevski (aleks.nanevski@imdea.org) and Lars Birkedal (birkedal@cs.au.dk).
Deadline for talk proposals (extended): | June 19, 2016 (Sunday) | |
Notification of acceptance: | July 15, 2016 (Friday) | |
Workshop: | September 18, 2016 (Sunday) |
The submission website is now closed.
Program Co-Chairs | |
Aleks Nanevski (IMDEA Software Institute) | |
Lars Birkedal (Aarhus University) | |
Program Committee | |
Robert Atkey (University of Strathclyde) | |
Nick Benton (Microsoft Research) | |
Josh Berdine (Facebook) | |
Dominique Devriese (KU Leuven) | |
Dan Ghica (University of Birmingham) | |
Guilhem Jaber (Université Paris Diderot) | |
Andrzej Murawski (University of Warwick) | |
François Pottier (INRIA Paris) | |
Stephanie Weirich (University of Pennsylvania) | |
Beta Ziliani (CONICET/FAMAF, Univ. Nacional de Córdoba) |
This is the 5th edition of the HOPE workshop.
The 4th edition of the workshop was held in Vancouver, Canada, in August 2015.
The 3rd edition of the workshop was held in Gothenburg, Sweden, in August 2014.
The 2nd edition of the workshop was held in Boston, Massachusetts, in September 2013.
The 1st edition of the workshop was held in Copenhagen, Denmark, in September 2012.