Next: Up: Transforming Relational Languages Previous: REL RELFUN Functions

RELFUN

The next transformation step takes all deterministic clauses totally apart: an internal representation, called , is created, in which variables are associated with expressions ( stands for environment because this data structure strongly resembles the sort of environments used for unification in PROLOG interpreters). The return value is represented by .

This structure is needed for several reasons:

For our example, looks like this:

Note that in a variable need not be associated with a unique expression, e.g. in 2a, X is associated with three and Y with two expressions. As will be shown in the following subsection, exactly one of the expressions associated with a variable is used to bind the variable (single assignment); the remaining expressions are only compared with the variable (if one of the expressions a variable is associated with is a constant, then the variable is not needed: it is sufficient to compare all remaining expressions with the constant, e.g. V3 and V4).

was created by (local) abstract interpretation of each clause using the following techniques:



Next: Up: Transforming Relational Languages Previous: REL RELFUN Functions


Harold Boley & Michael Sintek (sintek@dfki.uni-kl.de)