~/talk

Faster Reachability Analysis for LR(1) Parsers

Talkat SLE 2021 · 2021-10-17..10-18· [compilers-and-language-design]
slides:none on file

A new algorithm reframes LR(1) reachability as recursive matrix equations (using the min,+ semiring) and replaces Pottier 2016 with a naive cost matrices prototype and a final compact cost matrices version that groups lookaheads into partitions. On real-world grammars it cuts runtime and memory by up to two–three orders of magnitude (many grammars run in a fraction of a second), while worst cases like a huge C++ grammar take ≈1 minute and ~3 GB. Implementation and tests exist and will be available in Menhir.

AI-written summary · about

  1. 0:00Intro
  2. 0:35What is the problem?
  3. 0:59Why solve it?
  4. 2:13Pottier's algorithm (2016)
  5. 3:32Our contribution: speeding up the analysis!
  6. 5:31An example grammar
  7. 5:52The automaton
  8. 6:19Conflict resolution
  9. 8:47LR(1) matrix-based cost equations
  10. 9:40Big matrices?
  11. 10:10Classifying terminals
  12. 11:29Compacting columns
  13. 12:01Compacting rows
  14. 13:36In practice...
  15. 14:17Conclusion
~/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.