|
| 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) |