~/conference

ICFP 2020

date:2020-08-23..2020-08-26
location:-- online --
series:ICFP · 4 editions
editions:[ICFP 2020, ICFP 2022, ICFP 2023, ICFP 2025]

ICFP 2020 is the 25th ACM SIGPLAN International Conference on Functional Programming. The conference was a virtual event during the dates of August 23-26, 2020 and all activities took place online. The main program featured two keynotes, technical presentations for papers appearing in PACMPL Vol 4: Issue ICFP, as well as an awards session, and a special session of papers recently appearing in the Journal of Functional Programming. The two invited speakers for 2020 were: Evan Czaplicki, covering the Elm programming language and hard lessons learned on driving adoption of new programming la ...

programming language researchers, type theorists, formal methods researchers, proof engineers, language designers, compiler engineers, OCaml developers, distributed systems researchers

effect handlers and compilation; polymorphic algebraic effects; concurrent separation logic in F*; temporal logic for distributed components; staged selective parser combinators; OCaml post-link optimisation; linear and affine type systems; stable relations denotational semantics; higher-order demand-driven symbolic evaluation; CRDT composition with semidirect products

titleauthorlength
Stable Relations and Abstract Interpretation of Higher-Order ProgramsBenoît Montagu, Thomas P. Jensen15m
Defines a denotational semantics for the untyped call-by-value lambda calculus as stable relations (monotone relations from substitutions to value sets) and…
Talk on
Higher-Order Demand-Driven Symbolic EvaluationZachary Palmer, Theodore Park, Scott F. Smith, Shiwei Weng14m
Presents DDSE, a demand-driven symbolic evaluator for higher-order functional code that runs backward from a program point; defines a novel DDI interpreter…
Talk on
Sparcl: A Language for Partially-Invertible ComputationKazutaka Matsuda, Meng Wang15m
A new language, SPARCL, implements partially-invertible computation with linear types and proves that composing such pieces yields correct invertibility where…
Talk on
SteelCore: An Extensible Concurrent Separation Logic for Effectful Dependently Typed ...Nikhil Swamy, Aseem Rastogi, Aymeric Fromherz, Denis Merigoux, Danel Ahman, Guido Martínez15m
SteelCore provides a semantics for CSL inside F, deriving Hoare rules from effectful non‑deterministic interleaving; it encodes computations as action trees…
Talk on
TLC: Temporal Logic of Distributed ComponentsJeremiah Griffin, Mohsen Lesani, Narges Shadab, Xizhe Yin15m
TLC is a temporal program logic that verifies both safety and liveness of layered distributed components and proves soundness against an operational semantics…
Talk on
Effect Handlers, EvidentlyNingning Xie, Jonathan Immanuel Brachthäuser, Daniel Hillerström, Philipp Schuster15m
Presents an evidence-passing translation that elaborates polymorphic algebraic effects into polymorphic lambda calculus, with a proof of soundness and…
Talk on
Achieving High-Performance the Functional Way - A Functional Pearl on Expressing High...Bastian Hagedorn, Johannes Lenfers, Thomas Koehler, Xueying Qin, Sergei Gorlatch, Michel Steuwer14m
Functional languages RISE and ELEVATE rewrite high-level data-parallel programs into optimized low-level code, expressing tiling, fusion and loop-permutation…
Talk on
Staged Selective Parser CombinatorsJamie Willis, Nicolas Wu, Matthew Pickering15m
Compiler for parser combinators that converts typed combinator trees into a CPS-style instruction machine and partially evaluates it with typed staging…
Talk on
Kindly Bent to Free UsGabriel Radanne, Hannes Saffrich, Peter Thiemann15m
A new ML extension called Affe enforces linearity and affinity so a database use-after-free example compiles in OCaml but is rejected at compile time here. It…
Talk on
Sealing Pointer-Based Optimizations Behind Pure FunctionsDaniel Selsam, Simon Hudon, Leonardo de Moura15m
Shows how dependent types seal pointer tricks behind pure interfaces to turn exponential tree traversals into linear-time algorithms, implemented for Lean v4…
Talk on
Effects for Efficiency: Asymptotic Speedup with First-Class ControlDaniel Hillerström, Sam Lindley, John Longley13m
Claim: first-class control gives a real asymptotic advantage. The authors implement a generic count with effect handlers that visits each edge of an N-depth…
Talk on
Computation FocusingNick Rioux, Steve Zdancewic13m
Presents a focused polymorphic call-by-push-value calculus and proves computational completeness: every well-typed term has a βη-equivalent focused…
Talk on
Retrofitting Parallelism onto OcamlKC Sivaramakrishnan, Stephen Dolan, Leo White, Sadiq Jaffer, Tom Kelly, Anmol Sahoo, Sudha Parimala, Atul Dhiman, Anil Madhavapeddy15m
A mostly-concurrent, non-moving mark-and-sweep GC for multicore OCaml is implemented (major heap based on VCGC, allocator from Streamflow) and extended to…
Talk
Liquid Information Flow ControlNadia Polikarpova, Deian Stefan, Jean Yang, Shachar Itzhaky, Travis Hance, Armando Solar-Lezama15m
Claims a new DSL called Lifty domain-specific language that encodes information-flow policies as liquid refinements and enforces them with a TIO-style security…
Talk on
A theory of RPC calculi for client–server modelKwanghoon Choi, Byeong-Mo Chang11m
Extends existing stateless RPC calculi to a stateful calculi family that supports symmetric source-level RPC while implementing asymmetric, trampolined…
Talk on
The full-reducing Krivine abstract machine KN simulates pure normal-order reduction i...Álvaro García Perez, Pablo Nogueira11m
An improved full‑reducing Krivine machine KN is shown to perform the exact same beta reductions, in the same order, as pure normal‑order reduction: a lockstep…
Talk on
Local algebraic effect theoriesŽiga Lukšič, Matija Pretnar11m
Proposes tracking equational theories inside computation types so code can assume only the equations actually observed, not a single global theory. Claims this…
Talk on
Heterogeneous binary random-access listsWouter Swierstra11m
Implements heterogeneous binary random-access lists in Agda with the same HList API: nil, cons (via a cons-tree primitive) and lookup that are total and…
Talk on
POPLMark reloaded: Mechanizing proofs by logical relationsAndreas Abel, Guillaume Allais, Aliya Hameer, Brigitte Pientka, Alberto Momigliano, Steven Schäfer, Kathrin Stark11m
Proposes a benchmark that mechanizes logical-relation proofs by proving strong normalization via Kripke-style logical relations for simply-typed lambda…
Talk on
Perturbation confusion in forward automatic differentiation of higher-order functionsOleksandr Manzyuk, Barak A. Pearlmutter, Alexey Radul, David Rush, Jeffrey Mark Siskind11m
Fielded forward AD systems produce wrong results for derivatives of higher-order functions because tag creation is tied to invoking the derivative operator…
Talk on
Elastic Sheet-Defined Functions: Generalising Spreadsheet Functions to Variable-Size ...Matt McCutchen, Judith W. Borghouts, Andrew D. Gordon, Simon Peyton Jones, Advait Sarkar11m
Automatic algorithm generalises sheet-defined functions to variable-size inputs by inferring length variables, emitting constraints and solving them like type…
Talk on
Emerging languages: An alternative approach to teaching programming languagesSaverio Perugini14m
Argues that a programming-languages course centers on emerging languages like Lua, Elixir, Go and Python rather than on abstract principles, and implements a…
Talk on
The Simple Essence of Algebraic Subtyping: Principal Type Inference with Subtyping Ma...Lionel Parreaux15m
Proposes Simple-sub, a concrete algorithm that preserves principal types with inclusive subtyping and is implemented as Simple-sub under 500 lines (parser…
Talk on
Liquid Resource TypesTristan Knoth, Di Wang, Adam Reynolds, Nadia Polikarpova, Jan Hoffmann15m
Liquid Resource Types claims an automated refinement-type system that proves precise, value-dependent resource bounds (polynomial, exponential and fine-grained…
Talk on
Cosmo: A Concurrent Separation Logic for Multicore OcamlGlen Mével, Jacques-Henri Jourdan, François Pottier15m
Cosmo provides a separation logic for Multicore OCaml that exposes the weak memory model yet lets you verify familiar locks: it instantiates Iris and is…
Talk on
Composing and Decomposing Op-Based CRDTs with Semidirect ProductsMatthew Weidner, Christopher S. Meiklejohn, Heather Miller15m
Construction called the semidirect product composes two op-based CRDTs plus an action function to produce a single CRDT that deterministically resolves…
Talk on
A Quick Look at ImpredicativityAlejandro Serrano, Jurriaan Hage, Simon Peyton Jones, Dimitrios Vytiniotis13m
A design called Quick Look phase adds a localized instantiation pass to GHC that discovers impredicative instantiations by peeking at arguments and nested…
Talk on
A Unified View of Modalities in Type SystemsAndreas Abel, Jean-Philippe Bernardy12m
Proposes a single algebraic structure of modalities embedded in System F that recovers linear, usage-counting, security, sensitivity and belief-style systems…
Talk on
Lower Your Guards: A Compositional Pattern-Match Coverage CheckerSebastian Graf, Simon Peyton Jones, Ryan Scott14m
Pattern-match coverage checking becomes a desugaring to guard trees that reduce all patterns to three constructs, with two simple processors A and U producing…
Talk on
Signature restriction for polymorphic algebraic effectsTaro Sekiyama, Takeshi Tsukada, Atsushi Igarashi15m
Proposes signature restriction on effect interfaces: require each bound type variable to occur only strictly positively in argument positions and only…
Talk on
Denotational Recurrence Extraction for Amortized AnalysisJoseph W. Cutler, Dan Licata, Norman Danner15m
A language-to-language translation extracts recurrences from a credit-annotated source into a cost-bearing simply-typed lambda calculus, using an affine type…
Talk on
Separation Logic for Sequential Programs (Functional Pearl)Arthur Charguéraud13m
A mechanized formalization claims a teachable Separation Logic for sequential programs with all definitions and proofs encoded in Coq formalization and…
Talk
Strong Functional Pearl: Harper's Regular-Expression Matcher in CedilleAaron Stump, Chris Jenkins, Stephan Spahn, Colin McDonald14m
Implementation of Harper’s continuation-based regular-expression matcher in Cedille claims static termination on all inputs while using only standard…
Talk on
Duplo: A Framework for OCaml Post-Link OptimisationNandor Licker, Timothy M. Jones15m
Framework builds a low level SSA IR called LLIR that represents both OCaml and C so optimisations can cross the FFI boundary and the toolchain lowers LLIR…
Talk on
Recovering Purity with Comonads and CapabilitiesVikraman Choudhury, Neel Krishnaswami14m
A call-by-value impure lambda calculus is extended with a comonadic safety modality that tags variables as safe or impure and a box comonad that internalizes…
Talk on
A General Approach to Define Binders Using Matching LogicXiaohong Chen, Grigore Rosu15m
Defines binders by using matching logic’s built‑in exists to form the graph set [X]E and then a constructor to build the binder term, encapsulated as the…
Talk
Parsing with Zippers (Functional Pearl)Pierce Darragh, Michael D. Adams15m
Generalizes Huet’s zipper to handle CFG features like alternation, sharing, and cycles, suspends traversal state so derivatives resume instead of retraversing…
Talk on
Regular Language Type Inference with Term RewritingTimothée Haudebourg, Thomas Genet, Thomas P. Jensen15m
Claims fully automatic inference of regular-language types for higher-order, tree-processing programs by modeling semantics as term rewriting and types as tree…
Talk on
Compiling Effect Handlers in Capability-Passing StylePhilipp Schuster, Jonathan Immanuel Brachthäuser, Klaus Ostermann12m
A compilation technique translates effect handlers written in capability-passing style into simply-typed lambda calculus using iterated continuation-passing…
Talk on
Scala Step-by-Step — Soundness for DOT with Step-Indexed Logical Relations in IrisPaolo G. Giarrusso, Leo Stefanesco, Amin Timany, Lars Birkedal, Robbert Krebbers14m
Presents a semantics-first proof that adds guardedness to DOT via a step-indexed logical relation built in Iris, yielding gDOT that models impredicative…
Talk on
A dependently typed calculus with pattern matching and erasure inferenceMatúš Tejiščák14m
A dependently typed calculus with pattern matching and explicit erasure annotations is presented, with the central claim that erasure commutes with reduction…
Talk on
Raising Expectations: Automating Expected Cost Analysis with TypesDi Wang, David M. Kahn, Jan Hoffmann15m
A type-based tool called PRaML automatically infers upper bounds on expected execution cost for probabilistic OCaml-like programs by extending RaML’s AARA…
Talk on
Program Sketching with Live Bidirectional EvaluationJustin Lubin, Nick Collins, Cyrus Omar, Ravi Chugh15m
Smyth implements live bidirectional evaluation to run and unevaluate partial programs, turning assertions into per-hole constraints that are fed to Myth (used…
Talk on
Elaboration with First-Class Implicit Function TypesAndrás Kovács15m
Presents an elaboration algorithm that actually inserts implicit lambdas by extending core Martin-Löf type theory with strictly curried function types and…
Talk on
Kinds are Calling ConventionsPaul Downen, Zena M. Ariola, Simon Peyton Jones, Richard A. Eisenberg15m
An intermediate language encodes runtime representation, arity and evaluation strategy inside kinds so multi-argument calls compile statically even under…
Talk on
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.