Welcome to CRSX!ΒΆ

The purpose of CRSX is to implement an extended higher-order rewriting formalism to facilitate writing compilers and other syntax-directed transformation systems, specifically:

  • Special notations for using embedded syntax, even higher order abstract syntax.
  • Special support for symbol tables, environments, and attributes, as used in compilers.
  • A polymorphic sort system (which in practice means that CRSX systems are contraction schemes).
  • CRSX systems can be compiled directly to native code (so far in C or Java (experimental)) for effective execution.