  The ASF+SDF Meta-Environment is an interactive language development
environment whose main application areas are definition of domain-specific
languages, generation of program analysis and transformation tools, production
of software renovation tools, and general specification and prototyping. It
uses conditional rewrite rules to define the dynamic semantics and other
tool-oriented aspects of languages, so the effectiveness of the generated tools
is critically dependent on the quality of the rewrite rule implementation.
  The ASF+SDF rewrite rule compiler generates C code, thus taking advantage of
C's portability and the sophisticated optimization capabilities of current C
compilers as well as avoiding potential abstract machine interface bottlenecks.
It can handle large (10 000+ rule) language definitions and uses an efficient
run-time storage scheme capable of handling large (1 000 000+ node) terms. Term
storage uses maximal subterm sharing (hash-consing), which turns out to be more
effective in the case of ASF+SDF than in Lisp or SML. Extensive benchmarking
has shown the time and space performance of the generated code to be as good as
or better than that of the best current rewrite rule and functional language
compilers.
