~/talk

From Linear to Incremental

Talkat Clojure/conj 2011 · 2011-11-10..11-12· [compilers-and-language-design]
links:none on file
slides:none on file

Describes turning a linear parser into an incremental one that hits best-case logarithmic time by mapping characters to composable partial functions, caching composed nodes in a balanced 2-3 tree (leaf = chunked token functions), and using a watermark/transportation technique plus scoped mutable instrumentation to adapt cached outputs. Benchmarks show a 5k-char file full parse ~200 ms, composition update ~1 ms, and a single-char edit reparse ~6 ms instead of redoing the whole file.

AI-written summary · about

  1. 0:00Start
  2. 2:27Consequences
  3. 2:55Incremental parsing
  4. 5:11What's a parser?
  5. 6:26What I'm interested into
  6. 6:44reduce considered slightly harmful
  7. 11:10Actual computation
  8. 12:39With memoized nodes
  9. 13:54Refining memoization
  10. 14:42What's the function?
  11. 15:57a LR step
  12. 16:40What's in a stack?
  13. 17:11LR step conclusion
  14. 17:58Stack transplantation
  15. 23:32Dependencies
  16. 24:10Inside the step fn
  17. 25:33The buffer
  18. 27:32Composition tree
  19. 39:56What's next?
~/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.