kiama 0.9.0 API

This document is the API specification for kiama 0.9.0 API

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