previous up next
Go backward to System of Type Declarations
Go up to Top
Go forward to Semantics of Type Declarations
RISC-Linz logo

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!


Author: Wolfgang Schreiner
Last Modification: November 18, 1997

previous up next