LR Parsing Is An Abstract Interpretation of LL Parsing
We show that LR parsing (not recognition) is an abstract interpretation of LL parsing, and use these results to show the correspondence of (deterministic) LR parse traces and LL parse traces.
Computer scientist · Singapore
I study programming languages, and how to make them more expressive, efficient, and a little more elegant.
Instructor & PhD candidate in Computer Science
National University of Singapore
The program
edge(a, b). edge(b, c). edge(c, d).
path(X, Y) :- edge(X, Y).
path(X, Z) :- path(X, Y),
edge(Y, Z).∅
Highlighted facts are new this round.
01Ideas into papers
We show that LR parsing (not recognition) is an abstract interpretation of LL parsing, and use these results to show the correspondence of (deterministic) LR parse traces and LL parse traces.
Making expressive Haskell abstractions efficient: a partial evaluator that unlocks specialization for recursive rank-2 polymorphic functions.
How close can a functional list get to optimal random access? New variations on Myers lists approach the information-theoretic lower bound.
A paradigm for expressing work-list algorithms correctly and concisely.
02Along the way
03In the classroom
I teach programming, systems, and the mathematics behind them, connecting foundational ideas to the practice of building software.
IT5100ATyped Functional ProgrammingIT5100BStream ProcessingIT5100ESecurity Best PracticesTeaching & course materialsRecipient of the NUS Faculty Teaching Excellence Award, 2025.