We are happy to announce that the following paper has been accepted for
publication at the 8th workshop on Language Descriptions,Tools and
Applications (LDTA'08) that will take place in Budapest, Hungary, on
April 5th, 2008.
Akim Demaille and Renaud Durlin and Nicolas Pierron and BenoƮt Sigoure.
Semantics driven disambiguation: A comparison of different approaches.
http://publis.lrde.epita.fr/200802-LDTA
Context-sensitive languages such as C or C++ can be parsed using a
context-free but ambiguous grammar, which requires another stage,
disambiguation, in order to select the single parse tree that complies
with the language's semantical rules. Naturally, large and complex
languages induce large and complex disambiguation stages. If, in
addition, the parser should be extensible, for instance to enable the
embedding of domain specific languages, the disambiguation techniques
should feature traditional software-engineering qualities: modularity,
extensibility, scalability and expressiveness.
We evaluate three approaches to write disambiguation filters for SDF
grammars: algebraic equations with ASF, rewrite-rules with programmable
traversals for Stratego, and attribute grammars with TAG, our system. To
this end we introduce Phenix, a highly ambiguous language. Its
``standard'' grammar exhibits ambiguities inspired by those found in the
C and C++ standard grammars. To evaluate modularity, the grammar is
layered: it starts with a small core language, and several layers add
new features, new production rules, and new ambiguities.
--
Daniela Becker