programming language semantics
Download
Skip this Video
Download Presentation
Programming Language Semantics

Loading in 2 Seconds...

play fullscreen
1 / 31

Programming Language Semantics - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

Programming Language Semantics. Mooly Sagiv Eran Yahav [email protected] [email protected] Schrirber 317 Open space 03-640-7606 03-640-5358 html://www.cs.tau.ac.il/~msagiv/courses/sem03.html Textbook:Winskel The Formal Semantics of Programming Languages

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Programming Language Semantics ' - lelia


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
programming language semantics

Programming Language Semantics

Mooly Sagiv Eran Yahav

[email protected] [email protected]

Schrirber 317 Open space

03-640-7606 03-640-5358

html://www.cs.tau.ac.il/~msagiv/courses/sem03.html

Textbook:Winskel

The Formal Semantics of Programming Languages

CS [email protected]

outline
Outline
  • Course note summary
  • Natural operational semantics
    • Commands
    • Example
    • Proving simple properties
  • Small step operational semantics
    • The main ideas
  • Proving properties of programs (Chapter 3)
course note summary
Course note summary
  • Word format
  • Add examples for every term
  • Add strawman examples
  • Self contained
abstract syntax for imp
Abstract Syntax for IMP
  • Aexp
    • a ::= n | X | a0 + a1 | a0 – a1 | a0 a1
  • Bexp
    • b ::= true | false | a0 = a1 | a0 a1 | b | b0 b1 | b0  b1
  • Com
    • c ::= skip | X := a | c0 ; c1 | if b then c0elsec1| while b do c
expression evaluation
Expression Evaluation
  • States
    • Mapping locations to values
    •  - The set of states
      •  : Loc  N
      • (X)= X=value of X in 
      •  = [ X  5, Y  7]
        • The value of X is 5
        • The value of Y is 7
        • The value of Z is undefined
    • For a Exp, , n N,
      • <a, >  n
        • a is evaluated in  to n
expression evaluation rules
Expression Evaluation Rules
  • Numbers
    • <n, >  n
  • Locations
    • <X, > (X)
  • Sums
  • Subtractions
  • Products

Axioms

equivalence of imp expressions
Equivalence of IMP expressions

iff

a0 a1

2+3 ~ 5

exp1+ exp2 ~ exp2 + exp1

boolean expression evaluation rules
Boolean Expression Evaluation Rules
  • <true, >  true
  • <false, >  false
the execution of commands
The execution of commands
  • <c, >  ’
    • c terminates on  in a final state ’
  • Initial state 0
    • 0(X)=0 for all X
  • Handling assignments <X:=5, >  ’
  • <X:=5, >  [5/X]
rules for commands
Rules for commands

Atomic

  • <skip, >  
  • Sequencing:
  • Conditionals:
rules for commands while
Rules for commands (while)

Euclid  while (M=N) do

if M  N

then N := N – M

else M := M - N

=[M6, N9]

rules for commands while1
Rules for commands (while)

Loop  while true do skip

proposition 2 8
Proposition 2.8

while b do c  if b then (c; while b do c) else skip

theorem 3 10
Theorem 3.10

For all states :

(M)  1 & (N) 1  ’ : <Euclid, > ’

small step operational semantics
Small Step Operational Semantics
  • The natural semantics defines evaluation in large steps
    • Abstracts “computation time”
  • It is possible to define a small step operational semantics
    • <a, > 1 <a’, ’>
      • “one” step of executing a in a state  yields a’ in a state ’
summary
Summary
  • Operational semantics enables to naturally express program behavior
  • Can handle
    • Non determinism
    • Concurrency
    • Procedures
    • Object oriented
    • Pointers and dynamically allocated structures
  • But remains very closed to the implementation
    • Two programs which compute the same functions are not necessarily equivalent
induction
Induction
  • Proving of program properties often uses mathematical induction
  • Prove properties of a programming language by proving a small finite set of claims
  • If a property is violated then there is a small finite set in which it is violated
  • Examples
    • <a, >  m & <a, >  m  m = n
    • Euclid terminates
    • <c, >  ’ & <c, ’’>  ’ = ’’
forms of induction
Forms of induction
  • Mathematical induction
    • (P(0) & (m w. P(m)  P(m+1))) m w. P(m)
  • Structural induction
  • Well-founded induction
structural induction
Structural Induction
  • Proposition 3.3
    • <a, >  m & <a, >  m  m = n
  • Bad example
    • <c, >  ’ & <c, >  ’’  ’ = ’’
well founded induction
Well-Founded Induction
  • A well-founded relation  on a set A if
    • there are no infinite decreasing chains
      • … ai  …  a2  a1
    • a b
      • a is a predecessor of b
  • Proposition 3.7 a binary relation on A  is well-founded iffany nonempty subset Q of A has a minimal element, m  Q: b  m. b  Q
the principle of well founded induction
The Principle of Well Founded Induction
  •  is a well founded relation on A
  • P is property
  • Then
    • a A: P(a)
    • Iff
    • a A: ([b  a. P(b)]  P(a)
applications of the well founded induction principle
Applications of the well founded induction principle
  • Mathematical induction
  • Course-of-values induction
  • Structural induction
induction on derivations
Induction on Derivations
  • A set of rule instancesR consists pairs X/y where X is a finite set and y is an element
    • X/y – rule instance
    • X – premises
    • y – conclusion
  • d R y – d is an R-derivation of y
    • (/y) R y if (/y)  R
    • ({d1, …, dn}/y) R y if ({x1, …, xn}/y) R andd1 R x1 & … & dn R xn
  • R y – for some d d R y
  • Sub-derivation d 1 d’ if d(D/y) with d’  D
  •  = 1+
  •  is well-founded
theorem 3 101
Theorem 3.10

For all states :

(M)  1 & (N) 1  ’ : <Euclid, > ’

theorem 3 11
Theorem 3.11
  • For all states ,’, ’’:
    • <c, >  ’ & <c, >  ’’  ’ = ’’
proposition 3 12
Proposition 3.12

For all states ,’:

<while true do skip, >  ’

summary1
Summary
  • Induction is a powerful tool in proving semantic properties
  • Can also be used in definitions
    • length(a)= # of operators in a
    • LocL(c) = left-hand-side variables
    • Lval(a)
    • Rval(a)
ad