Compilers by Rewriting, Automated
Sunday, May 29, 2011, Novi Sad, Serbia
Part of RDP'11
COBRA aims at bringing together research in theory and applications of rewriting forcompilers, encouraging the presentation of new directions, developments, and results, as well as surveys, tutorials, and experience reports, for existing knowledge in this area.
The basic idea is that rewriting can be used to transform programs, and indeed many compilers include some kind of rewrite engine to realize optimizations. Examples include relational algebraic rewrites, SSA tree rewrites, lambda lifting, etc. In this workshop it is our hope that focusing on the rewrite transformations as proper rewrite systems with formal rewrite rules can help understand how such rewrites can be described and implemented in more generic ways and with better performance and higher expressiveness.
Specific topics of interest include, but are not restricted to:
- Issues in algebraic, rewriting, logic, and other formal compiler specification languages.
- Formal notations for specifying specific compiler components such as normalization, intermediate languages, translation schemes, analysis, optimization, static reductions, code generation, data flow analysis.
- The role of type and sort systems in compiler specifications.
- The benefits and difficulties of higher order and first order formalisms in compiler specifications; the use of higher order abstract syntax.
- Formal code generation issues such as typed assembly language.
- How to generate efficient and even industrial strength compilers fully automatically from the specifications.
- The development cycle for generated compilers including issues of development environments and debugging of formal specifications.
- Position papers on whether compiler generation based on rewriting can become a factor in mainstream compiler writing in industry and academia.
- Experience reports on writing compilers based on formal rewrite systems using systems such as ASF+SDF, IMP, Rascal, or even ANTLR TreeGrammars.
- System descriptions for new or extended systems used to build rewrite components of compilers, including systems that are themselves compilers for rewrite systems.
More information can be found here.
- Kristoffer H Rose, IBM Research, New York, USA