CRSX - Combinatory Reduction Systems with Extensions
The CRSX project aims at implementing a generic higher-order
rewrite engine based on the Combinatory Reduction Systems (CRS)
formalism.
Goals
The specific goals of the CRSX project are to
- provide a generic higher-order rewrite engine that
- is easy to embed in and integrate with other projects, specifically optimizing compiler,
- is simple to extend with experimental features,
- runs on the universally available Java 5+ platform, and
- can generate executables for any platform.
Everyone can use the code but if you wish to contribute then please contact the project admins.
History
Combinatory Reduction Systems (CRS) were invented by
J. W. Klop in
1980. The idea of CRS is to allow rewriting rules that
allow for matching binding constructs and performing substitution
as part of rewrite steps. The seminal paper on CRS is:
Jan Willem Klop, Vincent van Oostrom, and Femke van Raamsdonk,
Combinatory Reduction Systems: Introduction and Survey,
Theoretical Computer Science 121, pp. 271-308 (1993).
The CRSX project is an extended reimplementation of the Haskell program in chapter 6 of
Kristoffer H. Rose,
Operational Reduction Models for Functional Programming Languages,
Ph.D. thesis, DIKU, University of Copenhagen, 1996
(pdf).
that was initially part of the XQuery optimizer used in the
Virtual XML project
by
Kristoffer Rose
at IBM Research.
License
The code is Copyright (c) 2006, 2010 IBM Corporation.
The program and the accompanying materials are made available
under the terms of the Common Public License v1.0,
which is included with the distribution and is available at
http://www.opensource.org/licenses/cpl1.0.php.
Eclipse plug-in for CRSX
Tutorial for eclipse plug-in for CRSX
Development guide for eclipse plug-in for CRSX
$Id: index.html,v 1.8 2010/08/17 17:43:34 krisrose Exp $