| Class Summary | |
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 an non-memoising innermost evaluation
with term-level substitution and arithmetic operations.
|
class
|
InnermostSubstEvaluator
extends ReduceSubst
|
trait
|
LazySubst
extends EagerSubst
Evaluation of lambda calculus using lazy evaluation with
term-level substitution and arithmetic operations.
|
class
|
LazySubstEvaluator
extends LazySubst
|
trait
|
ParEagerSubst
extends ReduceSubst
Eager evaluation of lambda calculus with parallel term-level substitution
and arithmetic operations.
|
class
|
ParEagerSubstEvaluator
extends ParEagerSubst
|
trait
|
ParLazySubst
extends ParEagerSubst
Lazy evaluation of lambda calculus with parallel term-level substitution
and arithmetic operations.
|
class
|
ParLazySubstEvaluator
extends ParLazySubst
|
trait
|
Parser
extends CharPackratParsers with AnyRef
Parser to AST.
|
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 with Rewriter
Interface for an individual rewriting-based lambda2 evaluator.
|
| Object Summary | |
object
|
AST
extends AnyRef
A simple lambda calculus abstract syntax.
|
object
|
Analysis
extends AnyRef
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.
|
object
|
Evaluators
extends AnyRef
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 ParsingREPL[Exp] with Parser
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).
|