Go backward to
Lambda Abstraction Principle
Go up to
Top
Go forward to
Summary (Semantics)
Summary (Typing Rules)
Abstract syntax:
D ::= ...|
define
I
1
(I
2
:
theta
) = U
U ::= ...|
invoke
I(V)
V ::= ...| I
Typing rules:
pi
-U- {I
2
:
theta
1
} |- U:
theta
2
pi
|-
define
I
1
(I
2
:
theta
1
) = U: {I
1
:
theta
1
->
theta
2
}
dec
pi
|- V:
theta
1
pi
|-
invoke
I(V):
theta
2
if (I:
theta
1
->
theta
2
) in
pi
pi
|- I:
theta
if (I:
theta
) in
pi
Type attributes:
theta
::=
tau
|
tau
exp
|
comm
|
delta
|
delta
class
|
pi
dec
|
theta
1
->
theta
2
.
tau
::=
int
|
bool
delta
::=
intloc
|
pi
pi
::= {
j
:
theta
j
}
j in J
, J subset Identifier.
Author:
Wolfgang Schreiner
Last Modification: May 7, 1998