Go backward to
Numeral and Command Parameters
Go up to
Top
Go forward to
Type Equivalence
Declaration and Variable Parameters
Declaration parameters:
module
COUNTER
(
M
: {
X
:
intloc
,
INIT
:
comm
}
dec
) =
{
import
M
;
proc
P
= (
call
INIT
;
X
:=@
X
+1)};
module
N
= {
var
X
:
newint
;
proc
INIT
=
X
:=0};
import
COUNTER
(
import
N
)
in
...
Variable parameters:
class
K
=
record
var
A
:
newint
proc
P
(
B
:
intloc
) =
A
:=@
A
+@
B
end
;
var
R
:
K
;
proc
Q
(
Y
: {
A
:
intloc
,
P
:
intloc
->
comm
})
=
call
Y
.
P
(
Y
.
A
)
in
A
:=0;
call
Q
(
R
)
Type structures are storage allocation routines and
not
type attributes!
Author:
Wolfgang Schreiner
Last Modification: May 7, 1998