~/talk

The Functional Essence of Imperative Binary Search Trees

Talkat PLDI 2024 · 2024-06-24..06-28· [compilers-and-language-design]
links:none on file
links:none on file
links:none on file
slides:none on file

Functional algorithms introduce a new first-class constructor context primitive and use Koka’s reuse-aware reference counting to implement tail-call, in-place partitioning for move-to-root, splay and zip trees. The paper mechanises equivalence between the functional and imperative versions in Coq mechanisation with Iris, yielding the first fully verified implementations of these restructuring BSTs. Benchmarks show performance on par with C (within a few percent; C edges when allocator differences are equalised). Artifacts and proofs are available.

AI-written summary · about

  1. 0:00Introduction
  2. 1:50Efficient functional trees
  3. 2:32Move-to-root trees
  4. 5:45Stack inefficiency
  5. 6:08Constructor contexts
  6. 8:56Constructor contexts in practice
  7. 10:42Full algorithm
  8. 11:25Verifying algorithms
  9. 13:09Performance comparison
  10. 13:50Limitations and future work
  11. 14:11Conclusion
  12. 14:32Q&A
~/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.