~/talk

FP²: Fully in-Place Functional Programming

Talkat ICFP 2023 · 2023-09-04..09-09· [functional-programming]
links:none on file
links:none on file
links:none on file
slides:none on file

Formal system proves a large class of pure functions can run with no allocation or deallocation and constant stack space when their arguments are unique, and it gives a syntactic check to certify that property via the FIP calculus. The ideas are implemented in Koka and dynamically applied using Perceus reference counting, with worked examples (splay/finger trees, merge/quick sort, a generic map for any polynomial type). Benchmarks show reuse often wins but one map case is slower due to zipper overhead while guaranteeing bounded stack.

AI-written summary · about

  1. 0:00Introduction to fully in-place functional programming
  2. 2:06FP vs in-place mutation
  3. 6:17Splay trees in FP²
  4. 13:42Merge sort in FP²
  5. 16:30Non-unique arguments in FP
  6. 19:17Benchmarking FIP vs traditional
  7. 21:23FP² in Coka
  8. 21:45Q&A: Ownership annotations
  9. 23:11Q&A: FIP fragility
  10. 24:57Q&A: Linux RCU in FIP
  11. 25:39Q&A: FIP in parallel systems
  12. 26:22Q&A: Memory fragmentation in FIP
  13. 28:12Q&A: Reuse policy in FIP
  14. 29:16Q&A: Error messages for non-FIP
~/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.