1 / 22

Programming Language Semantics Denotational Semantics

Programming Language Semantics Denotational Semantics. Chapter 5. Operators and their least fixed points. For a set of rule instances R R (B)={y | X B, X/y  R} Proposition 4.11 A set B is closed under R if R (B) B R is monotonic A  B  R (A)  R (B) Define the sequence of sets

norm
Download Presentation

Programming Language Semantics Denotational Semantics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programming Language SemanticsDenotational Semantics Chapter 5

  2. Operators and their least fixed points • For a set of rule instances R • R(B)={y | X B, X/y  R} • Proposition 4.11 A set B is closed under R if R(B) B • R is monotonic • A  B  R(A)  R(B) • Define the sequence of sets • A0 = R0() =  • A1 = R1() =R() • A2 = R2() =R(R()) • … • An = Rn() • Define A = n  An

  3. Proposition 4.12 • A is R-closed • R(A) = A • A is the least R-closed set Alternative Formulation Let fix(R) denotes the least fixed point of R • R(fix(R)) = fix(R) • X. R(X) = X  fix(R) X Claim: fix(R)= nRn()=A

  4. Motivation for Denotational Semantics • Equivalence of commands • c1  c2  ,’: <c1, >  ’  <c2, >  ’ • The meaning of a command is a (partial) state transformer • C c1  = { (,’) | <c1, >  ’ } • C c2  = { (,’) | <c2, >  ’ } • c1  c2  C c1  = C c2  • Denotational semantics • Aa : N • Bb : T • Cc : 

  5. Denotational semantics • A: Aexp (N) • B: Bexp (T) • C: Com() • Defined by structural induction

  6. Denotational semantics of Aexp • A: Aexp (N) • An = {(, n) |  } • AX = {(, (X)) |  } • Aa0+a1 = {(, n0+n1) | (, n0)Aa0, (,n1)Aa1} • Aa0-a1 = {(, n0-n1) | (, n0)Aa0, (,n1)Aa1} • Aa0a1 = {(, n0  n1) | (, n0)Aa0, (,n1)Aa1} Lemma: A a  is a function

  7. Denotational semantics of Aexp with  • A: Aexp (N) • An = .n • AX = .(X) • Aa0+a1 = .(a0+Aa1) • Aa0-a1 = .(a0-Aa1) • Aa0a1 = .(a0 Aa1)

  8. Denotational semantics of Bexp • B: Bexp (T) • Btrue = {(, true) |  } • Bfalse = {(, false) |  } • Ba0=a1 = {(, true) |   & Aa0=Aa1 }{(, false) |   & Aa0Aa1 } • Ba0a1 = {(, true) |   & Aa0  Aa1 }{(, false) |   & Aa0Aa1 } • Bb = {(, T t) |  , (, t) Bb} • Bb0b1 = {(, t0 Tt1) |  , (, t0) Bb0, (, t1) Bb1 } • Bb0b1 = {(, t0 Tt1) |  , (, t0) Bb0, (, t1) Bb1 } Lemma: Bb is a function

  9. Denotational semantics of Com • C: Com () • Cskip = {(, ) |  } • CX:=a = {(, [n/X]) |   & n=Aa} • Cc0;c1 = Cc1  Cc0 • Cif b then c0 else c1 = {(, ’) | Bb=true & (, ’) Cc0}{(, ’) | Bb=false & (, ’) Cc1} • Cwhile b do c = ?

  10. Denotational semantics of Com • C: Com () • Cif b then c0 else c1 = {(, ’) | Bb=true & (, ’) Cc0}{(, ’) | Bb=false & (, ’) Cc1} • w = while b do c • w  if b then c;w else skip • Cw ={(, ’) | Bb=true & (, ’) Cc;w}{(, ) | Bb=false} ={(, ’) | Bb=true & (, ’) CwCc} {(, ) | Bb=false} •  = {(, ’) | ()=true & (, ’)   } {(, ) | () =false}

  11. Denotational semantics of Com • C: Com () •  = {(, ’) | ()=true & (, ’)   } {(, ) | () =false} •  () = {(, ’) | ()=true & (, ’)   } {(, ) | () =false}={(, ’)|  ’’: ()=true & (, ’’) , (’’, ’)  } {(, ) | () =false} •  () = 

  12. Denotational semantics of Com • C: Com () •  () = {(, ’) | ()=true & (, ’)   } {(, ) | () =false}={(, ’)|  ’’: ()=true & (, ’’) , (’’, ’)  } {(, ) | () =false} •  () =  •  = R • R={({(’’, ’)}/ (, ’)) | ()=true & (, ’’) }  {(/ (, )) |() =false} •  = fix(R)

  13. Denotational semantics of Com • Cskip={(, )| } • CX:=a = {(, [n/X]) |   & n=Aa} • Cc0;c1 = Cc1  Cc0 • Cif b then c0 else c1 = {(, ’) | Bb=true & (, ’) Cc0}{(, ’) | Bb=false & (, ’) Cc1} • Cwhile b do c = fix() where() = {(, ’) | Bb=true & (, ’)  Cc} {(, ) |  Bb=false}

  14. Proposition 5.1 w = while b do c Cw = Cif b then c;w else skip

  15. Equivalence of Semantics • Lemma 5.3: For all a  Aexp • Aa={(, n) | < , a> n}

  16. Equivalence of Semantics • Lemma 5.4: For all b  Bexp • Bb={(, t) | < , b> t}

  17. Equivalence of Semantics • Lemma 5.6: For all c  Com • <, c> ’  ( , ’)  Cc • Theorem 5.7 For all c  Com • Cc = {( , ’) | <, c> ’ }

  18. Partial Orders • A partial order (p.o.) is a set P with a binary relation  • reflexive p: p P. pp • transitive: p, q, r P. p q & q r p r • antisymmetric: p, q P. p q & q p p=q • For a partial order (P, ) and a subset XP • p is an upper bound of X • q X. q p • p is a least upper bound of X (denoted by X) if • p is an upper bound of X • For all upper bounds q of X: p q d1  d2  … dn = {d1, d2, …, dn}

  19. Complete Partial Orders • Let (D, ) be a partial order • An -chain is an increasing chain • d0d1 …dn .. • D is a complete partial order (c.p.o) if every -chain has a least upper bound • D is a complete partial order with  if is a c.p.o. with a minimum element 

  20. Monotonic and Continus Functions • A function f: DE between cpos D and E is monotonic if • d,d’ D.d d’ f(d) f(d’) • Such a function is continuous if for all chainsd0d1 …dn … in D: n f(dn) = f( n dn)

  21. Fixed Points • Let f: D D be a continuous function on a cpo with  D • A fixed point of fis an element d Dsuch that f(d) =d • A pre fixed point of fis an element d Dsuch that f(d) d • Thm: fix(f) = n fn()

  22. Missing • Greatest lower bounds • Knaster-Tarski Theorem • Conclusion

More Related