Getting Grammars into Shape for Block-based Editors
summary
Kogi is a Rascal tool that takes a context-free grammar, applies removing disambiguation constructs and inlining chain rules, transforms the grammar into a block model and emits Blockly blocks plus a tiny web app. A grammar-simplification pipeline reduces redundant block kinds and produces significantly more compact editors up to medium grammar complexity; demos include an AWS resource grammar, a sonification reverse-engineer, Pico and QL. Generated editors work for editing and execution but lack integrated debugging and in-editor error markers.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:22Context
- 1:20Kogi: Mapping Grammars to Blocks
- 3:18MiniJava: Issues for Mapping
- 3:54S/Kogi Simplifying Grammars for Kogi
- 5:17S/Kogi: Simplifying Grammars for Kogi
- 6:19S/Kogi: Architecture
- 7:07Phase 3: Merging rules
- 9:15Evaluation
- 10:13Discussion
- 12:31Conclusions
related talks
27mParsing, Compiling, and Static Metaprogramming
25mText files full of punctuation? There must be a better way to code.
16mVisual statical analysis tool
29mMy Little Parser: Tooling is Magic
35mMaking a lot of things
20mAn Approach to Generate Text-Based IDEs for Syntax Correction based on Syntax Specification
41mImproving Clojure's Error Messages with Grammars
32mCan Guided Decomposition Help End-Users Write Larger Block-Based Programs? A Mobile Robot E
