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 31, 2014

Session 1: Welcome and Invited Talk
09:00 Introduction
Neel Krishnaswami and Hongseok Yang
09:10 Verifying Security Properties of SES Programs (videos: part 1, part 2)
Philippa Gardner
10:00 Coffee Break

Session 1: Monads and Effects
10:30 Towards indexed algebraic effects and handlers
Stevan Andjelkovic
11:00 From stateful to stackful computation (video)
Danel Ahman and Tarmo Uustalu
11:30 Separating Entangled State (video)
Kwok Cheung
12:00 Lunch (NOTE: lunch is two hours)

Session 2: Putting Theory into Practice
14:00 Graphical Algebraic Foundations for Monad Stacks (video)
Ohad Kammar
14:30 Delimited control with multiple prompts in theory and practice
Paul Downen and Zena M. Ariola.
15:00 A Type Directed model of Memory Locality and the design of High Performance Array APIs (video)
Carter Schonwald
15:30 Coffee Break

Session 3: Verification and Mechanization
16:00 Compositional Compiler Verification via Parametric Simulation (video)
Georg Neis, Chung-Kil Hur, Jan-Oliver Kaiser, Derek Dreyer and Viktor Vafeiadis
16:30 ModuRes: a Coq Library for Reasoning about Concurrent Higher-Order Imperative Programming Languages
Filip Sieczkowski and Lars Birkedal

Invited Talk

Verifying Security Properties of SES Programs

Philippa Gardner, Imperial College London

Secure ECMAScript (SES) is a subset of JavaScript, designed in such a way that untrusted code can safety co-exist with trusted code. We introduce a program logic for verifying security properties of SES programs. It follows separation logic in that we can make local assertions about local state. It is different from separation logic in that we can also make global assertions about the global state and its interface with the local state. For example, we can globally assert that untrusted objects do not contain pointers to local trusted objects. Such assertions are key for describing security properties of common SES programs. This logic builds on the work of Gardner, Maffeis and Smith on reasoning about a core fragment of JavaScript (POPL2012), and the recent work of Smith on extending the logic to handle higher-order functions.

This is joint work with Gareth Smith and Thomas Wood, Imperial.

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, Neel Krishnaswami (N.Krishnaswami@cs.bham.ac.uk) and Hongseok Yang (hongseok00@gmail.com).

Deadline for talk proposals:     June 13, 2014 (Friday)
Notification of acceptance:     July 4, 2014 (Friday)
Workshop:     August 31, 2014 (Sunday)
Submission:     Use this Easychair site

Workshop Organization

Program Co-Chairs
Neel Krishnaswami (University of Birmingham)
Hongseok Yang (University of Oxford)
Program Committee
Zena Ariola (University of Oregon)
Ohad Kammar (University of Cambridge)
Ioannis Kassios (ETH Zurich)
Naoki Kobayashi (University of Tokyo)
Paul Blain Levy (University of Birmingham)
Aleks Nanevski (IMDEA)
Scott Owens (University of Kent)
Sam Staton (Radboud University Nijmegen)
Steve Zdancewic (University of Pennsylvania)