1 / 19

Programming Language Semantics Denotational Semantics

Programming Language Semantics Denotational Semantics. Chapter 5 Part II. Outline. Equivalence of Semantics Complete partial orders and continuous functions. Denotational semantics. A: Aexp  (N) B : Bexp (T) C: Com (  ) Defined by structural induction.

zada
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 Part II

  2. Outline • Equivalence of Semantics • Complete partial orders and continuous functions

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

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

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

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

  7. Equivalence of Semantics • Lemma 5.4: For all b  Bexp • Bb={(, t) | < b,  > t} • Proof • P(b)  Bb={(, t) | < b,  > n} • Structural induction

  8. 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}

  9. Operational Semantics of Commands /<skip, >   {<a, >  n}/<X:=a, >  [n/X] {<c0,  >  ’’, <c1, ’’ >  ’ }/<c0;c1, >  ’ {<b,  >  true, <c0,  >  ’ }/<if b then c0 else c1, >  ’ {<b,  >  false, <c1,  >  ’ }/<if b then c0 else c1, >  ’ {<b,  >  false }/<while b do c , >   {<b,  >  true, <c,  >  ’’, <while b do c, ’’  ’ >}/ <while b do c, >  ’

  10. Equivalence of Semantics • Lemma 5.6: For all c  Com • <, c> ’  ( , ’)  Cc • Proof • P(c, , ’)  ( , ’)  Cc • Rule induction

  11. Equivalence of Semantics • Theorem 5.7 For all c  Com • Cc = {( , ’) | <c, > ’ } • Proof • , ’: (, ’)  Cc <c, > ’ • Structural++ induction

  12. 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}

  13. PartialOrders • 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 • p is an lower bound of X • q X. p q • p is a greatest upper bound of X (denoted by X) if • p is a lower bound of X • For all lower bounds q of X: q p • Examples • (Pow(X), ) • (Pow(X), ),

  14. 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  • D is a complete lattice if every subset has both greatest and lower bounds • Examples • (Pow(X), ) • ([], )

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

  16. Scott’ Thesis • Any computable function is continuous • preserve information order • More information as input gives more information as output • preserve limits • The total information obtainable as output from an infinite sequence of input elements with refinement information is the sum of total of all information obtainable from each input seperately

  17. 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()

  18. Knaster-Tarski Theorem • Let f: L L be a monotonic function on a complete lattice L • The least fixed point lfp(f) exists • lfp(f) = {x L: f(x)x}

  19. Summary • Denotational semantics provides a way to declare the meaning of programs in an abstract way • Can handle side-effects • Loops • Recursion • Gotos • Fixed point theory provides a declarative way to specify computations • Many usages

More Related