This repository contains an implementation of the lambda calculus that uses the reflection-based term-rewriting extension to Silver.
- Lucas Kramer, University of Minnesota, [email protected] ORCID: https://orcid.org/0000-0001-6719-6894
- Eric Van Wyk, University of Minnesota, [email protected], ORCID: https://orcid.org/0000-0002-5611-8687
- Release 0.1.0: made in April, 2020
- Release 0.1.1: made in October, 2020
This software is distributed under the GNU Lesser General Public License. See the file LICENSE for details. More information can be found at http://www.gnu.org/licenses/.
Release 0.1.1 is discussed in the paper "Reflection of Terms in Attribute Grammars: Design and Applications" by Lucas Kramer, Ted Kaminski, and Eric Van Wyk. At the time of release this paper has been accepted in the Journal of Computer Languages (COLA).
It is an extension of ``Reflection in Attribute Grammars'' by the same authors, presented at the 2019 ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE). See DOI https://doi.org/10.1145/3357765.3359517.
- Actively-developed versions of this software are available on GitHub at https://github.com/melt-umn/rewriting-lambda-calculus
- Archival versions of this software are permanently available on the Data Repository of the University of Minnesota at https://doi.org/10.13020/xcfv-5k29.
To see how the Silver reflection-based term rewriting features can be used, see the Silver specification in the grammars
directory. Specifically, the file Eval.sv
in the grammars/edu.umn.cs.melt.lambdacalc/termrewriting
directory. This material is discussed in the paper mentioned above.
A build
script will create the Silver evaluation for this and the run-tests
will execute it on some provided test files.
Be sure that Silver version 0.4.3 is used since it contains the new term-rewriting features used here.
- Silver version 0.4.3. Availble at https://melt.cs.umn.edu/silver and archived at https://doi.org/10.13020/D6QX07.