70 likes | 185 Views
The 7th International Workshop on Rewriting Logic and its Applications (WRLA 2008) presented insights into various rewriting problems categorized into unconditional rewriting, conditional rewriting, and context-sensitive rewriting. Participants utilized a simplified rewriting language, REC, to automate problem execution and comparison of execution times across tools. The workshop highlighted the need for improved automation in code execution and result evaluation while addressing issues like semantic mismatch and assumptions of confluence and termination. The importance of compilers and their efficiency in problem-solving was also emphasized.
E N D
2nd Rewrite Engines Competition (REC) WRLA 2008 7th International Workshop on Rewriting Logic and its Applications
On the organization • A bunch of tiny and small, problems, organized in four categories • unconditional rewriting (TRS), • conditional rewriting (CTRS), • rewriting modulo (Modulo), and • context-sensitive rewriting/rewriting with local strategies (CS). • Initially, most of them were used in the 1st competition. At some point some of them were removed. • Semantic mismatch • assumption of confluence and termination • order of the rules • The possibility of adding mid size problems was considered. • All the problems are compiled and executed in the same machine. • Scripts are requested to automate the execution. • We compare times (user time).
The REC language • A very simple rewriting language REC is defined to write the problems. • many-sorted, • no built-ins, • prefix, • no overloading, • conditional rules, • assoc, comm, id • strats • Each of the participants builds a program transforming the problems in this REC syntax to the corresponding tool. • An optimized version of the problems, using any advance feature provided by the tool, could additionally be provided.
<spec> ::= REC-SPEC <id> • [ SORTS <idlist> ] • [ VARS <vardecllist> ] • [ OPS <opdecllist> ] • [ RULES <rulelist> ] • END-SPEC • <idlist> ::= <id> <idlist> | e • <vardecllist> ::= <idlist> : <id> <vardecllist> | e • <opdecllist> ::= <opdecl> <opdecllist> | e • <opdecl> ::= op <id> : <idlist> -> <id> | • op <id> : <idlist> -> <id> { <opattrlist> } • <opattrlist> ::= <opattr> <opattrlist> |Êe • <opattr> ::= assoc | comm | id( <term> ) | strat( <intlist> ) • <rulelist> ::= <rule> <listofrules> | e • <rule> ::= <term> -> <term> | • <term> -> <term> if <condlist> • <condlist> ::= <cond> | <cond> , <condlist> • <cond> ::= <term> -><- <term> | % == • <term> ->/<- <term> | % =/= • <term> ::= <id> | <id> ( ) | <id> ( <termlist> ) • <termlist> ::= <term> | <term> , <termlist> • <intlist> ::= <int> <intlist> | e • <command> ::= get normal form for: <term> | • check the confluence of: <term> -><- <term> • id are non-empty sequences of characters except ‘ ‘, '(', ')', '{', '}', '"' and ','; and excluding '-><-', '->/<-', 'if', and keywords REC-SPEC, SORTS, VARS, OPS, and RULES, and END-SPEC. • int are non-empty sequences of digits • comments are given using '%'. All the text written in the a line after a '%' is discarded The REC language
Parsing issues • ASF+SDF and Stratego/XT are very good defining syntax of languages. • ASF+SDF and TermWare did not transform automatically. • Tom and Maude presented a few limitations: • Tom • cannot handle symbols like &, +, ... • Maude • modules and command must be enclosed in parentheses, • comments must be given as in Maude, • a bug in the manipulation of bubbles forced us to change the input files
Conclusions • Compilers are more efficient in the problems they support. • No conclusions on • memory usage, • development times, • correctness, • big problems, • ... • More automatization is required in the competition: • result checking, • time capture, • results table generation, • ...
THANKS TO THE PARTICIPANTS ASF+SDF: Mark van den Brand Maude: Francisco Durán and Steven Eker Stratego/XT: Lennart Kats, Karl Trygve Kalleberg and Eelco Visser TermWare: Ruslan Shevchenko Tom: Pierre-Etienne Moreau