About *(syntax) in *(Maude):

From the _("parsing section (2.7) in the Maude manual" | http://maude.cs.uiuc.edu/manual/maude-manual-html/maude-manual_29.html) can be had many insights about Maude's syntax and the reasoning behind it. It notably references some work done on _(ASF+SDF) in this area.

The constraints in mind for the language based on the semantics:
<ul>
<li>Interpreted parsing: languages are user-definable.
<li>Full Context-Free Grammars (CFG), and not only LALR models.
<li>With precedence/gathering patterns that modify the grammatical power of nonterminal symbols.
<li>Grammars are extended to incorporate <em>bubbles</em>. Bubbles are the key notion to implement syntactic reflection. Furthermore, bubble sorts are <em>user-definable</em>.
<li>Techniques for error detection and error recovery must be supported.
<li>Efficiency is a main goal, as the parser is the surface of the rest of the system, especially in <var>_(META-LEVEL)</var> computations.
</ul>

Essentially, the Maude grammar (the meta-parsing system) allows the definition of terms in a mixfix fashion with precedence-ordering hints.

This allows infix, prefix, postfix, and generalized context-free grammar templates (even <tt>IF _ THEN _ ELSE _ END</tt> is supported), which allows you to adapt the maude syntax to someone else's notion of natural syntax much more easily.

Maude's very strong module system also means that these syntaxes can be very location-specific, and only imported on demand, so the conflict frequency of differing syntaxes for similar operations is minimized naturally.

All of these combine to make an effective modelling and execution framework for _(domain-specific language)s, with specification modules supporting the desired object/semantics model.
