Go backward to System of Type Declarations Go up to Top Go forward to Semantics of Type Declarations |
T: Type-structure -> Store ->
(Denotable-value x Poststore)
T[[nat]] = lambda s.
let (l,p) =
(allocate-locn s)
in (inNatlocn(l), p)
T[[bool]] = lambda s.
let (l,p) =
(allocate-locn s)
in (inBoollocn(l), p)
T[[array [N1 ...N2] of T]] = lambda s.
let n1 = N[[N1]] in let n2 = N[[N2]]
in n1 greaterthan n2 ->
(inErrvalue(), (signalerr s))
[] get-storage n1 (empty-array n1 n2)
s
T[[record D end]] = lambda s.
let (e, p) =
(D[[D]] emptyenv s)
in (inRecord(e), p)
Type structure expressions are mapped to storage allocation actions!