Go backward to
Semantics of Parameter Transmission
Go up to
Top
Go forward to
Lazy Evaluation
Eagerly Evaluated Parameters
Invocation:
[[
pi
|-
call
I
1
(E):
comm
]]
e
s
=
p
([[
pi
|- E:
tau
exp
]]
e
s
)
s
where (I
1
=
p
) in
e
Formal parameter reference:
[[
pi
|- I
2
:
tau
exp
]]
e
s
=
v
where (I
2
=
v
) in
e
Problem: functions as parameters
Functions are lazily evaluated.
Semantics of identifer lookup depends on identifier type!
I:
tau
exp
for function names.
I:
tau
param
for formal parameters.
Non-terminating parameter invocation:
[[
pi
|-
loop
:
intexp
]]
e
s
=
bottom
[[
pi
|-
call
I
1
(
loop
):
comm
]]
e
s
=
p
bottom
s
=
bottom
.
p
is
strict
on its actual parameter.
Author:
Wolfgang Schreiner
Last Modification: May 7, 1998