|
P | ::= | 0 | x(u) | P & P | defD in P |
D | ::= | M |> P | D or D |
M | ::= | x(u) | M & M |
[[0]] | = | 0 |
[[x (u)]] | = | x.send (u) |
[[P1 & P2]] | = | [[P1]] & [[P2]] |
[[ defD in P]] | = | obj o = [[D]] in |
obj x1 = send (u1) |> o.m1 (u1) in ... | ||
obj xn = send (un) |> o.mn (un) in [[P]] |
[[D1 or D2]] | = | [[D1]] or [[D2]] | [[M1 & M2]]- | = | [[M1]]- & [[M2]]- | |
[[M |>P]] | = | [[M]]-|> [[P]] | [[x (u)]]- | = | mx(u) |
[[0]] | = | 0 |
[[x.l (u)]] | = | x # l (u) |
[[P1 & P2]] | = | [[P1]] & [[P2]] |
[[ obj x = D \ init P1 in P2]] | = | ( def[[D]]x in [[P1 & P2]]) {x ¬ {l = xl, l Î dl(D)}} |
[[D1 or D2]]x | = | [[D1]]x or [[D2]]x | [[M1 & M2]]x | = | [[M1]]x & [[M2]]x | |
[[M |> P]]x | = | [[M]]x |> [[P]] | [[l (u)]]x | = | xl(u) |