Algebraic Signature

Stratego -- Strategies for Program Transformation
An algebraic signature describes the structure of a set of terms. A signature introduces one or more AlgebraicSorts, i.e., collections of terms. Sorts are inhabited by declaring TermConstructors. A constructor has a name and zero or more subterms. A constructor is declared by stating its name, the list of sorts of its direc subterms and the sort of the constructed term. Constructor names may be overloaded. The sorts String and Int are predefined.

A typical example of a signature is the following description of LambdaCalculus? expressions.

signature
  sorts Exp 
  constructors
    Var : String -> Exp
    App : Exp * Exp -> Exp
    Abs : String * Exp -> Exp

Term Injections

A term injection is a constructor-less constructor in a signature.

Example:

signature
  sorts Var Exp
  constructors
    Var : String -> Var
        : Var -> Exp
    Abs : Var * Exp -> Exp

Issues

-- EelcoVisser - 09 Dec 2001


CategoryGlossary