Go backward to
Lazy and Eager Evaluation Combined
Go up to
Top
Go forward to
Typing Rules
Lazy and Eager Bindings
Extended syntax:
E ::= E
1
:=E
2
| ... |
newint
|
lazy
I=E |
eager
I=E
| E
1
,E
2
|
with
E
1
do
E
2
| I |
lambda
I:
theta
. E | E
1
E
2
Examples:
var
X
:
newint
=
eager X
=
newint
class
K
=
record var
Y
:
newint
,
proc
P
=
skip end
=
lazy K
=
(
eager Y
=
newint
,
lazy
P
=
skip
)
module
M
=
{
var
Y
:
newint
,
proc
P
=
skip
}
=
eager K
=
(
eager Y
=
newint
,
lazy
P
=
skip
)
Lambda abstractions:
lambda
I:
tau
exp
. E takes unevaluated phrases.
lambda
I:
tau
. E takes only evaluated phrases.
Author:
Wolfgang Schreiner
Last Modification: May 14, 1998