HOPE is a (fairly) new workshop that is intended to bring together researchers interested in the design, semantics, implementation, and verification of higher-order effectful programs. It will be informal, consisting of invited talks, contributed talks on work in progress, and open-ended discussion sessions. The HOPE workshops are dedicated to John Reynolds, whose work is an inspiration to us all.

Goals of the Workshop

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.

Program for August 30, 2015

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

Invited Talk

The Rust programming language

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.

Call for Talk Proposals

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

Workshop Organization

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)

The HOPE workshop adheres to ACM's anti-harassment policy.