package lambda2
- Alphabetic
- Public
- All
Type Members
-
class
Analyser
extends AnyRef
Analyses for typed lambda calculus expressions.
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.
-
trait
EagerSubst
extends ReduceSubst
Eager evaluation of lambda calculus with term-level substitution and arithmetic operations.
- class EagerSubstEvaluator extends EagerSubst
-
trait
Evaluator
extends AnyRef
Interface for a lambda2 evaluator.
-
trait
InnermostSubst
extends ReduceSubst
Evaluation of lambda calculus using a memoising innermost evaluation with term-level substitution and arithmetic operations.
- class InnermostSubstEvaluator extends ReduceSubst
-
class
LambdaConfig
extends REPLConfig
Configuration for the Lambda REPL.
-
class
LambdaTests
extends RegexParserTests with SyntaxAnalyser
Lambda calculus tests.
-
trait
LazySubst
extends EagerSubst
Evaluation of lambda calculus using lazy evaluation with term-level substitution and arithmetic operations.
- class LazySubstEvaluator extends LazySubst
-
trait
Par
extends ReduceSubst
Common rules for parallel evaluation methods.
-
trait
ParEagerSubst
extends Par
Eager evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
- class ParEagerSubstEvaluator extends ParEagerSubst
-
trait
ParLazy
extends Par
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
-
trait
ParLazyShare
extends ParLazy
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations, plus sharing of substituted terms.
- class ParLazyShareEvaluator extends ParLazyShare
-
trait
ParLazySubst
extends Par
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations.
- class ParLazySubstEvaluator extends ParLazySubst
-
trait
ParLazyUpdate
extends ParLazy
Lazy evaluation of lambda calculus with parallel term-level substitution and arithmetic operations, plus sharing and update of substituted terms.
- class ParLazyUpdateEvaluator extends ParLazyUpdate
-
trait
Reduce
extends RewritingEvaluator
Evaluation of lambda calculus using global beta reduction with meta-level substitution and arithmetic operations.
- class ReduceEvaluator extends Reduce
-
trait
ReduceSubst
extends Reduce
Evaluation of lambda calculus using global beta reduction with term-level substitution and arithmetic operations.
- class ReduceSubstEvaluator extends ReduceSubst
-
trait
RewritingEvaluator
extends Evaluator
Interface for an individual rewriting-based lambda2 evaluator.
-
trait
SyntaxAnalyser
extends PositionedParserUtilities
Parser to abstract syntax for optionally typed lambda calculus.
Value Members
-
object
Evaluators
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.
-
object
Lambda
extends ParsingREPLWithConfig[Exp, LambdaConfig] with SyntaxAnalyser
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).
-
object
LambdaTree
A simple lambda calculus abstract syntax.
- object PrettyPrinter extends PrettyPrinter