~/talk

Multi-stage Relational Programming

Talkat PLDI 2025 · 2025-06-16..06-20· [compilers-and-language-design]
slides:none on file

Implements a multi-stage extension of miniKanren that compiles known parts of relational interpreters and defers unknown holes to a runtime relational evaluator, so interpreters become faster compilers for synthesis tasks. Adds two annotation strategies (fall back for unknown program text, gather for runtime branching), preserves an erasure property so staged code yields a runtime evaluator, and ships reusable artifacts. Reports ~26× average speedup across 21 benchmarks on Racket, miniKanren, and CFG recognizers.

AI-written summary · about

  1. 0:00Multi-stage relational programming intro
  2. 1:46Relational programming basics
  3. 5:39Staging in relational context
  4. 7:22Holes and non-determinism in staging
  5. 10:15Disjunction and staging in interpreters
  6. 13:27Performance benchmarks
  7. 14:30Language synthesis and future work
  8. 15:47Q&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.