Program Semantics

Program Semantics

Program Semantics 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich Why Semantics? • Semantics describe formally what a program means • Typically, how the program executes • Framework for analysis • Precise definitions • Proofs of correctness • Semantics in practice • Difficult to define for full languages • But see Standard ML! • Very useful for thinking about how analysis applies to the “core” of a language • Extension to full language is assumed to be easy • Sometimes true, sometimes not! Analysis of Software Artifacts - 4 Spring 2008 1 Forms of Program Semantics • Big-Step Reduction Semantics • Shows result of program • Depends on environment E : Var Value • Forms: • In environment E, expression a reduces to number n • In environment E, statement S executes to a new environment E′ • The primary semantics used in this course • Small-Step Reduction Semantics • Shows step-by-step execution of program • Form: • In environment E, expression e steps to expression e′ and produces a new environment E′ • Denotational Semantics • Form: • The meaning of program P is mathematical object O Analysis of Software Artifacts - 5 Spring 2008 The W HILE Language • A simple procedural language with: • assignment • statement sequencing • conditionals • while loops • Used in early papers (e.g. Hoare 69) as as a “sandbox” for thinking about program semantics • We will use it to illustrate several different kinds of analysis Analysis of Software Artifacts - 6 Spring 2008 2 WHILE Syntax • Categories of syntax • S ∈ Stmt statements • a ∈ AExp arithmetic expressions • x,y ∈ Var variables • n ∈ Num number literals • P ∈ BExp boolean expressions • Syntax • S ::= x := a | skip | S1; S2 | if P then S1 else S2 | while P do S • a ::= x | n | a1 op a a2 • op a ::= + | - | * | / | … • P ::= true | false | not P | P1 op b P2 | a1 op r a2 • op b ::= and | or | … • op r ::= < | ≤ | = | > | ≥ | … Analysis of Software Artifacts - 7 Spring 2008 Example W HILE Program y := x; z := 1; while y>1 do z := z * y; y := y – 1 Computes the factorial function, with the input in x and the output in z Analysis of Software Artifacts - 8 Spring 2008 3 Big-Step Semantics • We use big-step to show expression evaluation • Inference rule format • Premises above the line • Conclusion below the line • Read, “If premises, then conclusion” • Example: operators • If expression a evaluates to a number n • And expression a′ evaluates to a number n′ • Then the expression a + a′ evaluates to n +++ n′ • In the rule, we distinguish the textual + operator from the mathematical + operator (for which we use boldface font) Analysis of Software Artifacts - 9 Spring 2008 WHILE Expression Big-Step Semantics • Values evaluate to themselves • n, true , false • Variables x evaluate to the value in the environment • E{x} • Operators evaluate according to mathematical operators • +, -, *, /, not , and , or , <, ≤, =, … • math:: indicates mathematical operators • boldface indicates mathematical values • italics indicates program text Analysis of Software Artifacts - 10 Spring 2008 4 Applying Semantic Rules • A tree of inference rules forms a derivation • Rules at top are axioms; they have no premises • Example: • E = { x↦3, y↦5} • P = x + 3 > y Analysis of Software Artifacts - 11 Spring 2008 Practice: Applying Semantic Rules • Example: • E = { x↦3, y↦5} • P = x > y and true Analysis of Software Artifacts - 12 Spring 2008 5 WHILE Statement Semantics • In a statement semantics, we are not looking for a resulting value, but for updates to variables in the environment • Example: assignment • If the right-hand side evaluates to a value n • Then the assignment generates a new environment where x maps to n Analysis of Software Artifacts - 13 Spring 2008 WHILE Statement Semantics • sequences execute statements in order • skip does not affect the environment • if executes either first or second statement, depending on P • while executes the body followed by the loop if P is true Analysis of Software Artifacts - 14 Spring 2008 6 WHILE Execution Example Analysis of Software Artifacts - 15 Spring 2008 7.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    7 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us