Vancouver, Canada
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
Neel Krishnaswami |
09:10 |
The Rust programming language
Aaron Turon |
10:00 | Coffee Break |
Session 1 |
|
10:30 | Combining effects and coeffects
Flavien Breuvart, Marco Gaboardi, Shinya Katsumata and Dominic Orchard |
11:00 |
An Algebraic Approach to Type Checking and Elaboration
Robert Atkey |
11:30 |
A denotational semantics for Hindley-Milner Polymorphism
Ohad Kammar and Sean Moss |
12:00 |
Combining Manifest Contracts with State
Michael Greenberg |
12:30 | Lunch |
Session 2 |
|
14:00 |
Dependent types, effects, and efficient verification conditions in F*
Nikhil Swamy and Catalin Hritcu |
14:30 |
Effects in Bayesian inference
Adam Scibior and Ohad Kammar |
15:00 |
Control Controls Extensional Execution
Philip Johnson-Freyd, Paul Downen and Zena M. Ariola |
15:30 | Coffee Break |
Session 3 |
|
16:00 |
A divertimento on MonadPlus and nondeterminism
Tarmo Uustalu |
16:30 |
Monadic effects: Define as a monad but Use as an effect
Daan Leijen and Niki Vazou |
17:00 |
Unifying Worlds and Resources
Ralf Jung and Derek Dreyer |
Aaron Turon, Mozilla
Rust is a new systems language, initially developed at Mozilla, which recently hit its 1.0 release. The goal of the language is to provide type and memory safety together with low-level control and performance predictability -- all while keeping programming practical. In particular, Rust guarantees safety without the use of a garbage collector, and provides for the kind of “zero cost abstractions” found in languages like C++.
This talk will focus on the core concepts that make Rust work: ownership and borrowing. It will show how these concepts are applied to combine safety and control for sequential programming. It will also go into some detail on how the same techniques help with concurrent programming, in particular how they guarantee freedom from data races and help rehabilitate shared-state concurrency.
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, Lars Birkedal (birkedal@cs.au.dk) and Neel Krishnaswami (N.Krishnaswami@cs.bham.ac.uk).
Deadline for talk proposals: | June 12, 2015 (Friday) | |
Notification of acceptance: | July 3, 2015 (Friday) | |
Workshop: | August 30, 2015 (Sunday) | |
Submission: | Use this Easychair site |
Program Co-Chairs | |
Lars Birkedal (Aarhus University) | |
Neel Krishnaswami (University of Birmingham) | |
Program Committee | |
Viviana Bono (Università di Torino) | |
Pierre Clairambault (ENS Lyon) | |
Mike Dodds (University of York) | |
Naoki Kobayashi (University of Tokyo) | |
Sam Lindley (University of Edinburgh) | |
Rasmus Møgelberg (IT University of Copenhagen) | |
Tahina Ramananandro (Reservoir Labs Inc.) | |
Kasper Svendsen (Aarhus University) | |
Nikos Tzevelekos (Queen Mary University) | |
Nobuko Yoshida (Imperial College) | |
Noam Zeilberger (MSR-Inria) |
This is the 4th edition of the HOPE workshop.
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.