- By
**lelia** - Follow User

- 83 Views
- Uploaded on

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

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

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

- Word format
- Add examples for every term
- Add strawman examples
- Self contained

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

- 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

Boolean Expression Evaluation Rules

- <true, > true
- <false, > false

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 (while)

Euclid while (M=N) do

if M N

then N := N – M

else M := M - N

=[M6, N9]

Rules for commands (while)

Loop while true do skip

Proposition 2.8

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

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

- 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

- 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

- Mathematical induction
- (P(0) & (m w. P(m) P(m+1))) m w. P(m)
- Structural induction
- Well-founded induction

Structural Induction

- Proposition 3.3
- <a, > m & <a, > m m = n
- Bad example
- <c, > ’ & <c, > ’’ ’ = ’’

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

- 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

- Mathematical induction
- Course-of-values induction
- Structural induction
- …

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

- For all states ,’, ’’:
- <c, > ’ & <c, > ’’ ’ = ’’

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)

Download Presentation

Connecting to Server..