Sharing Trees and Contextual Information: Re-imagining Forwarding in Attribute Gra...
summary
Reimagines forwarding in Silver by adding an at-sign sharing operator and translation attributes so a forwarded child is decorated once and reused, avoiding exponential redecoration for dispatching and nested forwards. Applies to ableC extensible C compiler and 10 C extensions: of 74 hack sites, 59 can use sharing (39 direct, 5 dispatch cases, 15 via translation attributes), replacing a brittle mechanism and saving examples like 36 of 900 lines of inherited-attribute equations.
AI-written summary · about
chapters (14)
- 0:00Tree sharing in attribute grammars
- 1:01Attribute grammars background
- 3:31Extensible languages and expression problem
- 5:18Forwarding with trees
- 8:48Performance issues in forwarding
- 11:40Exponential blowup solution
- 13:26Hybrid inherited attributes
- 16:20Tree sharing in extensions
- 19:31Translation attributes for forwards
- 21:38Evaluation of tree sharing
- 23:24Future work and circularity
- 24:52Dispatch to arbitrary productions
- 25:34Conclusion
- 25:57Q&A
related talks
01h 01mBetter Code with C++ Attributes
01h 27mUniversal/Forwarding References - A Key to More Modern C++
23mContextual source code AD transformations for sum types
01h 10mReflection Is Good for C++ Code Health
21mContext Sensitivity without Contexts: A Cut-Shortcut Approach to Fast and Precise(…)
01h 21mNon-local compiler transformations in the presence of dynamic dispatch
09mDynamic Dispatch of Context-Sensitive Optimizations
29mAnnotating Deeply Embedded Languages
