Honu: Syntactic Extension for Algebraic Notation through Enforestation
Summary: The paper starts out talking about how great macro systems are but how all of the additions of macro systems have happened in Lisp-like languages. The author then says they’re presenting a new language, Honu, that adds in the power of macros but isn’t lisp-like. The author then describes the basic syntax of Honu. The author then describes the macro system and shows how you can build a macro that does something without having to enclose the call to the macro in parenthesis. The author then talks about how ellipses can be used inside of a macro. The paper then talked about syntax classes and how they are used in Honu. The author then describe’s Honu’s mechanism for adding operators to the language. The author describes why a BNF grammar is insufficient for Scheme and likewise, Honu. The author then describes the grammar used for parsing Honu. The author then talks about how the first phase of parsing is performed by a scheme reader. The author then talks about enforestation which is the process of converting terms into a syntax tree. Then they step over an example of it being performed. The author then talks about how honu pattern matching is performed. The author then describes the process of parsing, which are repeated enforest operations and explains how mutual recursion is handled in the language. The author then steps through a simple example illustrating the how the parsing mechanism works. The author discusses related work starting out talking about extensions to C and C++ macro systems. Then the author differentiates Honu by explaining how its parsing mechanism is inherently different.
Primary Contributions: A language with macros that is kind of like C.
Something I learned: BNF grammar is not powerful enough for Scheme macros.