Go backward to Example Go up to Top |
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.