Analyses for typed lambda calculus expressions.
Eager evaluation of lambda calculus with term-level substitution and arithmetic operations.
Interface for a lambda2 evaluator.
Evaluation of lambda calculus using a memoising innermost evaluation with term-level substitution and arithmetic operations.
Configuration for the Lambda REPL.
Lambda calculus tests.
Evaluation of lambda calculus using lazy evaluation with term-level substitution and arithmetic operations.
Common rules for parallel evaluation methods.
Eager evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations, plus sharing of substituted terms.
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations, plus sharing and update of substituted terms.
Evaluation of lambda calculus using global beta reduction with meta-level substitution and arithmetic operations.
Evaluation of lambda calculus using global beta reduction with term-level substitution and arithmetic operations.
Interface for an individual rewriting-based lambda2 evaluator.
Parser to abstract syntax for optionally typed lambda calculus.
Interface to switchable evaluators for the lambda2 language.
Interface to switchable evaluators for the lambda2 language. Enables a client to select an evaluation mechanism by name and access the evaluator for that mechanism.
A simple typed lambda calculus read-eval-print-loop that offers choice from among multiple evaluation mechanisms.
A simple typed lambda calculus read-eval-print-loop that offers choice from among multiple evaluation mechanisms. The lambda calculus supported and the strategies used are heavily based on "Building Interpreters with Rewriting Strategies", Eelco Dolstra and Eelco Visser, LDTA 2002 (published in Volume 65/3 of Electronic Notes in Theoretical Computer Science, Elsevier).
A simple lambda calculus abstract syntax.
Analyses for typed lambda calculus expressions. A simple free variable analysis plus name and type analysis. There are two versions of the latter here: one (tipe) that constructs an explicit environment separate from the AST, and one (tipe2) that represents names by references to the nodes of their binding lambda expressions.