Tail-calls are an essential feature of functional programming languages: they allow to write iterations in a declarative fashion, using simple recursive functions, unbothered by implementation details such as stack space. They work by giving special treatment to function calls in “terminal position”, i.e.~the last thing a function would do. Indeed, such calls never need to be returned from, meaning that adding an entry in the stack is not necessary. Tail-call and tail-recursion, since their introduction in the 70s, have been mainstay in many programming languages and are available in virtually all modern production compilers (C, Rust, Scheme, Haskell, OCaml, …).
In this talk, we consider the treatment of tail call and tail recursions in an Asynchronous context, inspired by the recent work on Tail modulo Cons.
Slides (tmaa.pdf) | 325KiB |
Fri 6 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
11:00 - 12:30 | |||
11:00 45mTalk | Tail Modulo Async/Await FProPer Vivien GACHET LIP, Lyon, France, Gabriel Radanne Inria, Ludovic Henrio University of Lyon - ENS Lyon - UCBL - CNRS - Inria - LIP File Attached | ||
11:45 45mTalk | Ribbit with Memory Morphisms FProPer Thaïs Baudon ENS de Lyon & LIP, Gabriel Radanne Inria, Laure Gonnord Université Grenoble-Alpes - Grenoble INP - LCIS Pre-print Media Attached File Attached |