3 ms·
Another advantage of working backwards is that it's more obvious that the abstract syntax can be designed before the concrete. Given an abstract syntax, it's s
by mattfenwick 12y ago
Another advantage of working backwards is that it's more obvious that the abstract syntax can be designed before the concrete.
Given an abstract syntax, it's super-easy to create an unambiguous concrete one (it may be ugly and verbose, but can completely avoid the issues of operator precedence, shift-reduce conflicts, lookahead, ambiguity, top-down vs. bottom-up, etc. etc.). If concrete syntax turns out to be interesting, it's always possible to design a second one (for the same abstract syntax) that's much more usable, pretty, etc.
When the language is modified, the focus can be placed more on the abstract syntax, and less on concrete syntax.