Efficient Embedding of Strategic Attribute Grammars via Memoization
summary
Memoizing attribute values inside the zipper eliminates repeated recomputation and yields a practical embedding of attribute grammars combined with strategic term rewriting. Implementation is the Ztrategic library (Rascal/ASCO, plus a Python port) that stores attributes in memoized zippers and adapts strategic combinators. Benchmarks on ASCO (116 constructors) show performance close to Strafunski, remove roughly 100–850 code smells in student projects, and run much faster than Kiama, which times out on larger examples.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 0:26Motivating let expressions
- 4:03Strategic combinators
- 6:31Strafunski limitations
- 7:57Attribute grammars
- 10:24Zipper navigation
- 13:16Memoization to avoid recomputation
- 15:24Full implementation
- 17:14Benchmarking tools
- 22:17Conclusions and future
- 24:22Q&A
related talks
15mParsing with Zippers (Functional Pearl)
15mMonadification of Attribute Grammars
18mSynthesizing Efficient Memoization Algorithms
29mNanopass Attribute Grammars
21mSynthesizing Formal Semantics from Executable Interpreters
28mOriented Metrics for Bottom-Up Enumerative Synthesis
28mScimitar: Functional Programs as Optimization Problems
18mAssociativity and Commutativity in Equality Saturation
