programming language semantics denotational semantics n.
Skip this Video
Loading SlideShow in 5 Seconds..
Programming Language Semantics Denotational Semantics PowerPoint Presentation
Download Presentation
Programming Language Semantics Denotational Semantics

play fullscreen
1 / 22
Download Presentation

Programming Language Semantics Denotational Semantics - PowerPoint PPT Presentation

norm
102 Views
Download Presentation

Programming Language Semantics Denotational Semantics

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