Go backward to
Variable Declarations
Go up to
Top
Go forward to
Eager Evaluation Semantics
Eager Evaluation Semantics
Without
variable declarations:
[[
pi
|- I=E: {I:
theta
}]]
e
s
= {I = [[
pi
|- E:
theta
]]
e
s
}
[[
pi
|- E
1
,E
2
:
pi
1
U
pi
2
]]
e
s
=
([[
pi
|- E
1
:
pi
1
]]
e
s
) union ([[
pi
|- E
2
:
pi
2
]]
e
s
)
[[
pi
|-
with
E
1
do
E
2
:
theta
]]
e
s
=
[[
pi
-U-
pi
1
|- E
2
:
theta
]](
e
-U- ([[
pi
|- E
1
:
pi
1
]]
e
s
))
s
[[
pi
|- I:
theta
]]
e
s
=
u
, where (I=
u
) in
e
[[
pi
|-
lambda
I:
theta
1
. E:
theta
1
->
theta
2
]]
e
s
=
f
where
f
u
s'
=
[[
pi
-U- {I:
theta
1
} |- E:
theta
2
]](
e
-U- {I=
u
})
s'
[[
pi
|- E
1
E
2
:
theta
2
]]
e
s
=
([[
pi
|- E
1
:
theta
1
->
theta
2
]]
e
)([[
pi
|- E
2
:
theta
1
]]
e
s
)
s
Type semantics:
[[{
i
:
theta
i
}
i
in
I
]] = ({
i
:
eval
(
theta
i
) }
i
in
I
)
bottom
[[
theta
1
->
theta
2
]] = (
eval
(
theta
1
)
->
[[
theta
2
]])
bottom
[[
comm
]] = (
Store
->
Store
)
bottom
[[
tau
exp
]] = (
Store
->
[[
tau
]])
bottom
Author:
Wolfgang Schreiner
Last Modification: May 14, 1998