~/talk

Tail Recursion Modulo Context: An Equational Approach

Talkat POPL 2023 · 2023-01-15..01-21· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

Generalizes tail recursion modulo cons into a general TRMC algorithm derived from an equational specification, requiring four instantiation operations and proofs of two simple context laws. Provides concrete instantiations (evaluation/CPS, defunctionalized contexts, monoids/semirings/exponents, cons products), proves modulo-cons soundness via Minamide's hole calculus and a Perceus-style heap semantics for safe in-place update under unique ownership, offers a hybrid runtime for non-linear control, ships a Koka implementation, and benchmarks (e.g. billion-element map) that always match or beat manual variants.

AI-written summary · about

  1. 0:00Intro
  2. 2:19Reversing a List
  3. 4:26Example: Integer addition (length)
  4. 5:53Example: List Concatenation (reverse)
  5. 7:08Wait! how do we know the new function is equivalent to the old one? Besides defining the abstract context, and its operations, we need to show that the context laws hold
  6. 8:32Tail Recursion Modulo Context
  7. 10:35Modulo Cons: Mapping a Function
  8. 15:55Executing Modulo Cons Map
  9. 18:35Wait! How can in-place update be safe?
  10. 19:27Modulo Cons with Non-Linear Control is Unsafe!
  11. 20:25Dynamic Copy using Reference Counts
  12. 22:18Benchmarks: red-black tree insertion
~/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.