Skip to content

An implementation of the lambda calculus using term rewriting in Silver

License

Notifications You must be signed in to change notification settings

melt-umn/lambda-calculus

Repository files navigation

An implementation of the lambda calculus in Silver.

This repository contains an implementation of the lambda calculus that uses the reflection-based term-rewriting extension to Silver.

Authors

Releases

  • Release 0.1.0: made in April, 2020
  • Release 0.1.1: made in October, 2020

License

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/.

Related publications

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.

Repositories

Using the Software

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.

Required Software