previous up next
Go backward to Example
Go up to Top
RISC-Linz logo

Recursive Bindings

D ::= ...| rec abs I=M | ...
abs in {proc, fun, class, ...}

D[[rec abs I=M]] = lambda e. lambda s. (e', (return s))
    where e' = (updateenv [[I]] inM(M[[M]]e') e)

Means for terminating recursive invocations.

E ::= E1+E2 | ...| if E1 then E2 else E3
T ::= nat | ...| if E then T1 else T2

Which constructions are chosen, depends on language pragmatics.


Author: Wolfgang Schreiner
Last Modification: December 18, 1997

previous up next