Welcome

Welcome to the website for IFL 2018, the 30th Symposium on Implementation and Application of Functional Languages. The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and application of functional and function-based programming languages. IFL 2018 will be a venue for researchers to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to the implementation and application of functional languages and function-based programming.

News

Sept. 4-th 2018 Draft pre-proceedings is available! (~ 70MB)

Draft pre-proceedings is available! (~ 70MB) July 2018 Confirmed Haskell Mini-Course by Galois, Inc. on September 5th. See details below!

Confirmed Haskell Mini-Course by Galois, Inc. on September 5th. See details below! March 2018 Exciting news! Adam Chlipala and Arjun Guha will be our keynote speakers. Check out their fantastic work!

Exciting news! Adam Chlipala and Arjun Guha will be our keynote speakers. Check out their fantastic work! 02-25-2018 IFL 2018 website created! Many thanks to previous organizers for sharing the recently adopted website template.

Keynote Speakers

Adam Chlipala, Massachusetts Institute of Technology CSAIL Interactive Proof and the Fall and Rise of the Standard Model of Functional-Program Execution The early days of functional programming involved some uncertainty about whether significant new hardware features were going to be needed, to support high-performance execution. Eventually, a consensus view was reached on how to compile functional programs efficiently for the kinds of hardware architectures that are common today. We have ingredients like garbage collection and a relatively straightforward way to read an expected cost from a program's text. Automatic optimizations find opportunities to reduce these costs in some cases, but fundamentally we have grown used to a very operational reading of functional programs and their performance.

In the first part of this talk, I will try to deliver "the bad news" about the extent to which this model deserves to stick around. Interactive proof assistants like Coq and Isabelle provide ways to establish the correctness of large artifacts, very convincingly; but it would be a mistake to see mechanized correctness proofs as merely exercises to carry out after-the-fact on systems. They also enable more flexible and effective language designs and compilation strategies. I will sketch how use of proof assistants can raise the abstraction level of programming dramatically, by intermingling specification features with programming features; and I will explain how traditional functional programs can be compiled more effectively using compilers that support proved plugins to introduce new translation patterns. Both of these perspectives pull away from the "standard model" cost semantics of functional programming.

In the second part of the talk, I turn to "the good news" for the staying power of the standard model. Practitioners have often suggested that functional programming was designed for language implementations and theorem provers, to the extent that it isn't a compellingly good match for more common domains. I've come to feel fairly sympathetic to that view, and I want to share a perspective where we apply "the standard model" only at a kind of "macro-expansion time" and leave no runtime residue of it in verified, deployed systems. Verified artifacts are best constructed with "building up" phases using combinators over first-class ingredients, often followed by "breaking down" phases of partial evaluation to collapse abstraction boundaries and reduce performance overhead. These phases get interesting when we combine them with formal proof and aim to minimize the complexity of trusted proof-checking kernels.

Arjun Guha, University of Massachusetts Amherst Languages for Programmable Infrastructure We are in an era of programmable infrastructure. Today, ordinary programmers can write code to allocate and manipulate low-level computing and networking resources that, not to long ago, were either fixed in hardware or outside the vocabulary of programming languages. What has made this possible is the development of a wide variety of domain-specific languages that expose new primitives for programming infrastructure. In this talk, I will introduce a few of these new primitives and DSLs and highlight their strengths. I will also illustrate that many of these languages have poor support for modular programming and program evolution, and how ideas borrowed from functional programming and program verification can help. I will give examples from our work on network programming, system configuration, and serverless cloud programming, where we are developing verification techniques for existing DSLs and designing new abstractions and languages that are correct by construction.

Venue

The 30th IFL is organized by the University of Massachusetts Lowell, and will take place at the UMass Lowell Inn & Conference Center.

The City of Lowell is located at the heart of the Merrimack Valley just 30 miles northwest of Boston. Lowell can be easily reached by train or taxi.

UMass Lowell Inn & Conference Center

50 Warren St, Lowell, MA 01852

Phone: 978-934-6920

Haskell Mini-Course (September 5th)

This year, on the day before the paper presentations start, we will begin with a mini-course on Haskell presented by David Thrane Christiansen and José Manuel Calderón Trilla of Galois, Inc.

Register: Attendance at the course is free, but you must RSVP using this form.

Course Description:

Recent versions of the GHC compiler for Haskell feature support for a number of advanced type system features, including pattern-matching functions in the type system (type families), indexed families (generalized algebraic datatypes, or GADTs), type-level data structures (data kinds), and general compile-time metaprogramming (Template Haskell). At Galois, we use these features in a number of our projects, which allows us to build deep embeddings of programming languages and have GHC enforce the target language's type system for us. This style of programming ensures that we only produce well-typed terms, including that we do not forget any of the run-time checks that are necessary to preserve our invariants when accepting input from untyped sources such as files.

In the course of developing these projects, some common problems and programming patterns emerged. We developed the `parameterized-utils` library to codify solutions to these problems, and provide necessary generalizations of interfaces from the standard library (Eq, Applicative, Traversable, etc.)

We will expect that participants in the course have used Haskell before, but we will not expect everyone to be experts. We will introduce GADTs, type families, and data kinds, and then show how to use them together with the tools from parameterized-utils with an implementation of the simply-typed lambda calculus, including basic AST definitions, evaluation, and parsing.

Schedule

View Schedule (PDF)

Important Dates -- Time Zone: AoE (UTC-12h)

Submission of regular papers: 25th May, 2018 (Friday) Submission of draft papers: 17th July, 2018 (Tuesday) Regular and draft papers notification: 20th July, 2018 (Friday) Deadline for early registration: 8th August, 2018 (Wednesday) Submission of pre-proceedings version: 29th August, 2018 (Wednesday) IFL 2018 Symposium: 5th September 2018 - 7th September 2018 (Wednesday - Friday incl.) Submission of papers for post-proceedings: 7th November, 2018 (Wednesday) Notification of acceptance for post-symposium proceedings: 22nd December, 2018 (Sunday) Camera-ready version: 10 February, 2019 (Sunday)

Submission Details

Prospective authors are encouraged to submit full papers and draft papers. All contributions must be written in English. Papers must adhere to the standard ACM SIGCONF (sigconf) two columns conference format, which can be found at https://www.acm.org/publications/proceedings-template. Specifically, you must use the `sigconf` option of the `acmart` package, which can be included in LaTeX with the following:

\documentclass[sigconf]{acmart} \acmConference[IFL'18]{International Symposium on Implementation and Application of Functional Languages}{August 2019}{Lowell, MA, USA} \acmYear{2019} \copyrightyear{2019}

For pre- and post-symposium full paper submissions, the limit is firm and is 12 pages. Draft papers submissions are roughly between 8 and 15 pages.

Clarification of IFL 2018's Submission Process (Notice the process has changed w.r.t. previous years) IFL 2018 solicits two kinds of submissions: Regular papers (12 pages including references) Draft papers for presentations ('weak' limit between 8 and 15 pages) Regular papers will undergo a rigorous review by the program committee, and will be evaluated according to their correctness, novelty, originality, relevance, significance, and clarity. A set of regular papers will be conditionally accepted for publication. Authors of conditionally accepted papers will be provided with committee reviews along with a set of mandatory revisions. Regular papers not accepted for publication may be considered as draft papers, at the request of the author. Draft papers will be screened to make sure that they are within the scope of IFL, and will be accepted for presentation or rejected accordingly. Prior to the symposium: Authors of conditionally accepted papers and accepted presentations will submit a pre-proceedings version of their work that will appear in the draft proceedings distributed at the symposium. The draft proceedings does not constitute a formal publication. We require that at least one of the authors present the work at IFL 2018. will submit a pre-proceedings version of their work that will appear in the draft proceedings distributed at the symposium. The draft proceedings does not constitute a formal publication. We require that at least one of the authors present the work at IFL 2018. After the symposium: Authors of conditionally accepted papers will submit a revised versions of their paper for the formal post-proceedings. The program committee will assess whether the mandatory revisions have been adequately addressed by the authors and thereby determines the final accept/reject status of the paper. Our interest is to ultimately accept all conditionally accepted papers. If you are an author of a conditionally accepted paper, please make sure that you address all the concerns of the reviewers. will submit a revised versions of their paper for the formal post-proceedings. The program committee will assess whether the mandatory revisions have been adequately addressed by the authors and thereby determines the final accept/reject status of the paper. Authors of accepted draft papers for presentation will be given the opportunity to incorporate the feedback from discussions at the symposium and will be invited to submit a revised full article for the formal post-proceedings. The program committee will evaluate these submissions according to their correctness, novelty, originality, relevance, significance, and clarity, and will thereby determine whether the paper is accepted or rejected.

At no time may work submitted to IFL be simultaneously submitted to other venues; submissions must adhere to ACM SIGPLAN's republication policy: http://www.sigplan.org/Resources/Policies/Republication

Registration Details

Registration includes participation in the symposium, meals, and coffee breaks.

Register

If you are interested in mini-course, attendance is free, but you must RSVP using this form.

Program Committee

Steering Committee

Organizing Committee

Chairs: Jay McCarthy, University of Massachusetts Lowell Matteo Cimini, University of Massachusetts Lowell

Previous IFL Editions

Please direct any questions you may have towards