Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with...
-
Upload
clinton-bryan -
Category
Documents
-
view
216 -
download
0
description
Transcript of Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with...
![Page 1: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/1.jpg)
Operational SemanticsMooly Sagiv
http://www.math.tau.ac.il/~sagiv/courses/pa.html
Tel Aviv University640-6706
Textbook: Semantics with ApplicationsChapter 2
H. Nielson and F. Nielsonhttp://www.daimi.au.dk/~bra8130/Wiley_book/wiley.html
![Page 2: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/2.jpg)
Syntax vs. Semantics The pattern of formation
of sentences or phrases in a language
Examples– Regular expressions– Context free grammars
The study or science of meaning in language
Examples– Interpreter– Compiler– Better mechanisms will be
given today
![Page 3: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/3.jpg)
Benefits of Formal Semantics Programming language design
– hard- to-define= hard-to-implement=hard-to-use– resolve ambiguities
Programming language implementation Programming language understanding Program correctness Program equivalence Compiler Correctness
– Correctness of Static Analysis– Design of Static Analysis
Automatic generation of interpreter But probably not
– Automatic compiler generation
![Page 4: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/4.jpg)
Alternative Formal Semantics Operational Semantics
– The meaning of the program is described “operationally”
– Natural Operational Semantics– Structural Operational Semantics
Denotational Semantics– The meaning of the program is an input/output relation– Mathematically challenging but complicated
Axiomatic Semantics– Logical axioms– The meaning of the program are observed properties
![Page 5: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/5.jpg)
int fact(int x) {
int z, y;
z = 1;
y= x
while (y>0) {
z = z * y ;
y = y – 1;
}
return z
}
[x3]
[x3, z, y]
[x3, z1, y]
[x3, z1, y3]
[x3, z1, y3]
[x3, z3, y3]
[x3, z3, y2]
![Page 6: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/6.jpg)
int fact(int x) {
int z, y;
z = 1;
y= x
while (y>0) {
z = z * y ;
y = y – 1;
}
return z
}
[x3, z3, y2]
[x3, z6, y2]
[x3, z6, y1]
[x3, z3, y2]
![Page 7: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/7.jpg)
int fact(int x) {
int z, y;
z = 1;
y= x
while (y>0) {
z = z * y ;
y = y – 1;
}
return z
}
[x3, z6, y1]
[x3, z6, y1]
[x3, z6, y0]
[x3, z6, y1]
![Page 8: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/8.jpg)
int fact(int x) {
int z, y;
z = 1;
y= x
while (y>0) {
z = z * y ;
y = y – 1;
}
return z
}
[x3, z6, y0]
[x3, z6, y0]
![Page 9: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/9.jpg)
int fact(int x) {
int z, y;
z = 1;
y= x
while (y>0) {
z = z * y ;
y = y – 1;
}
return z
}
x. if x = 0 then 1 else x * f(x -1)
Denotational Semantics
![Page 10: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/10.jpg)
{x=n}
int fact(int x) { int z, y;
z = 1;
{x=n z=1}
y= x
{x=n z=1 y=n}
while (y>0) {x=n y 0 z=n! / y!}
{
{x=n y >0 z=n! / y!}
z = z * y ;
{x=n y>0 z=n!/(y-1)!}
y = y – 1;
{x=n y 0 z=n!/(y-1)!}
} return z {x=n z=n!}
}
Axiomatic Semantics
![Page 11: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/11.jpg)
Static Analysis Automatic derivation of static properties which
hold on every execution leading to a programlocation
![Page 12: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/12.jpg)
Example Static Analysis Problem Find variables with constant value at a given
program location Example program int p(int x){
return x *x; void main()}{int z; if (getc())
z = p(6) + 8;else z = p(5) + 7;
printf (z);}
![Page 13: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/13.jpg)
Abstract (Conservative) interpretation
abstract representation
Set of states
concretization
Abstractsemantics
statement s abstract representation
abstraction
Operational semantics
statement sSet of states
![Page 14: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/14.jpg)
Example rule of signs Safely identify the sign of variables at every
program location Abstract representation {P, N, ?} Abstract (conservative) semantics of *
![Page 15: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/15.jpg)
Abstract (conservative) interpretation
<N, N>
{…,<-88, -2>,…}
concretization
Abstractsemantics
x := x*#y<P, N>
abstraction
Operational semantics
x := x*y {…, <176, -2>…}
![Page 16: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/16.jpg)
Example rule of signs (cont) Safely identify the sign of variables at every program
location Abstract representation {P, N, ?} (C) = if all elements in C are positive
then return P else if all elements in C are negative then return N else return ?
(a) = if (a==P) then return{0, 1, 2, … } else if (a==N)
return {-1, -2, -3, …, } else return Z
![Page 17: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/17.jpg)
Benefits of Operational Semantics
for Static Analysis
Correctness (soundness) of the analysis– The compiler will never change the meaning of the
program Establish the right mindset Design the analysis Becomes familiar with mathematical notations
used in programming languages
![Page 18: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/18.jpg)
The While Programming Language Abstract syntax
S::= x := a | skip | S1 ; S2 | if b then S1 else S2 | while b do S
Use parenthesizes for precedence Informal Semantics
– skip behaves like no-operation– Import meaning of arithmetic and Boolean operations
![Page 19: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/19.jpg)
Example While Program
y := 1;
while (x=1) do (
y := y * x;
x := x - 1
)
![Page 20: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/20.jpg)
General Notations Syntactic categories
– Var the set of program variables– Aexp the set of arithmetic expressions– Bexp the set of Boolean expressions– Stm set of program statements
Semantic categories– Natural values N={0, 1, 2, …– Truth values T={ff, tt}– States State = Var N– Lookup in a state s: s x– Update of a state s: s [ x 5]
![Page 21: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/21.jpg)
Example State Manipulations [x1, y7, z16] y = [x1, y7, z16] t = [x1, y7, z16][x5] = [x1, y7, z16][x5] x = [x1, y7, z16][x5] y =
![Page 22: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/22.jpg)
Semantics of arithmetic expressions Assume that arithmetic expressions are side-effect
free A Aexp : State N Defined by induction on the syntax tree
– A n s = n– A x s = s x– A e1 + e2 s = A e1 s + A e2 s
– A e1 * e2 s = A e1 s * A e2 s
– A ( e1 ) s = A e1 s --- not needed
– A - e1 s = -A e1 s
![Page 23: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/23.jpg)
Semantics of Boolean expressions Assume that Boolean expressions are side-effect free B Bexp : State T Defined by induction on the syntax tree
– B true s = tt– B false s = ff– B x s = s x
– B e1 = e2 s =
– B e1 e2 s =
– B e1 e2 s =
tt if A e1 s = A e2 s
ff if A e1 s A e2 s
tt if B e1 s = tt and B e2 =tt
ff if B e1 s=ff or B e2 s=ff
![Page 24: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/24.jpg)
Natural Operational Semantics Describe the “overall” effect of
program constructs Ignore non terminating computations
![Page 25: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/25.jpg)
Natural Semantics Notations
– <S, s> - the program statement S is executed on input state s
– s representing a terminal (final) state For every statement S, write meaning rules
<S, i> o“If the statement S is executed on an input state i, it terminates and yields an output state o”
The meaning of a program P on an input state s is the set of outputs states o such that <P, i> o
The meaning of compound statements is defined using the meaning of immediate constituent statements
![Page 26: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/26.jpg)
Natural Semantics for While[assns] <x := a, s> s[x Aas]
[skipns] <skip, s> s
[compns] <S1 , s> s’, <S2, s’> s’’
<S1; S2, s> s’’
[ifttns] <S1 , s> s’
<if b then S1 else S2, s> s’ if Bbs=tt
[ifffns] <S2 , s> s’
<if b then S1 else S2, s> s’ if Bbs=ff
axioms
rules
![Page 27: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/27.jpg)
Natural Semantics for While(More rules)
[whilettns] <S , s> s’, <while b do S, s’> s’’
<while b do S, s> s’’ if Bbs=tt
[whileffns]
<while b do S, s> s if Bbs=ff
![Page 28: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/28.jpg)
Simple Examples
[compns] <skip ,s0> s0, <x := x+1, s0> s0[x 1]
<skip; x := x +1, s0> s0[x 1]
Let s0 be the state which assigns zero to all program variables
Assignments [assns] <x := x+1, s0> s0[x 1]
Skip statement[skipns] <skip, s0> s0
Composition
![Page 29: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/29.jpg)
Simple Examples (Cont)
[ifttns] <skip ,s0> s0
<if x=0 then skip else x := x +1, s0> s0
Let s0 be the state which assigns zero to all program variables
if-construct
![Page 30: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/30.jpg)
A Derivation Tree A “proof” that <S, s> s’ The root of tree is <S, s> s’ Leaves are instances of axioms Internal nodes rules
– Immediate children match rule premises Simple Example <skip; x := x +1, s0> s0[x 1]>
<skip, s0> s0 < x := x +1, s0> s0[x 1]>
![Page 31: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/31.jpg)
An Example Derivation Tree<(x :=x+1; y :=x+1) ; z := y), s0> s0[x 1][y 2][z 2]
![Page 32: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/32.jpg)
Top Down Evaluation of Derivation Trees
Given a program S and an input state s Find an output state s’ such that
<S, s> s’ Start with the root and repeatedly apply rules until
the axioms are reached Inspect different alternatives in order In While s’ and the derivation tree is unique
![Page 33: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/33.jpg)
Example of Top Down Tree Construction
Input state s such that s x = 3 Factorial program
y := 1; while (x=1) do (y := y * x; x := x - 1)
![Page 34: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/34.jpg)
Program Termination Given a statement S and input s
– S terminates on s if there exists a state s’ such that<S, s> s’
– S loops on s if there is no state s’ such that <S, s> s’
Given a statement S– S always terminates if for every input state s, S
terminates on s– S always loops if for every input state s, S loops on s
![Page 35: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/35.jpg)
Properties of Natural Semantics Equivalence of program constructs
– “skip ; skip” is semantically equivalent to “skip”– “((S1 ; S2) ; S3)” is semantically equivalent to “(S1 ;
( S2 ; S3))”– “(x := 5 ; y := x * 8)” is semantically equivalent to
“(x :=5; y := 40)” Deterministic
– If <S, s> s1 and <S, s> s2 then s1=s2
![Page 36: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/36.jpg)
Semantic Equivalence S1 and S2 are semantically equivalent if
for all s and s’<S1, s> s’ if and only if <S2, s> s’
Simple example“while b do S”is semantically equivalent to:“if b then (S ; while b do S) else skip”
![Page 37: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/37.jpg)
Deterministic Semantics for While If <S, s> s1 and <S, s> s2 then s1=s2
The proof uses induction on the shape of derivation trees– Prove that the property holds for all simple derivation
trees by showing it holds for axioms– Prove that the property holds for all composite trees:
» For each rule assume that the property holds for its premises (induction hypothesis) and prove it holds for the conclusion of the rule
![Page 38: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/38.jpg)
The Semantic Function Sns
The meaning of a statement S is defined as a partial function from State to State
Sns: Stm (State State) Sns Ss = s’ if <S, s> s’ and otherwise
Sns Ss is undefined Examples
– Sns skips =s
– Sns x :=1s = s [x 1]
– Sns while true do skips = undefined
![Page 39: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/39.jpg)
Structural Operational Semantics Emphasizes the individual steps Usually more suitable for analysis For every statement S, write meaning rules <S, i>
“If the first step of executing the statement S on an input state i leads to ”
Two possibilities for = <S’, s’> The execution of S is not completed, S’ is
the remaining computation which need to be performed on s’
= o The execution of S has terminated with a final state o
is a stuck configuration when there are no transitions The meaning of a program P on an input state s is the set of
final states that can be executed in arbitrary finite steps
![Page 40: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/40.jpg)
Structural Semantics for While[asssos] <x := a, s> s[x Aas]
[skipsos] <skip, s> s
[comp1sos] <S1 , s> <S’1, s’>
<S1; S2, s> < S’1; S2, s’>
axioms
rules
[comp2sos] <S1 , s> s’
<S1; S2, s> < S2, s’>
![Page 41: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/41.jpg)
Structural Semantics for Whileif construct
[ifttsos] <if b then S1 else S2, s> <S1, s> if Bbs=tt
[ifffos] <if b then S1 else S2, s> <S2, s> if Bbs=ff
![Page 42: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/42.jpg)
Structural Semantics for Whilewhile construct
[whilesos] <while b do S, s> <if b then (S; while b do S) else skip, s>
![Page 43: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/43.jpg)
Derivation Sequences A finite derivation sequence starting at <S, s>
0, 1, 2 …, k such that 0=<S, s> i i+1
k is either stuck configuration or a final state An infinite derivation sequence starting at <S, s>
0, 1, 2 … such that 0=<S, s> i i+1
0 i i in i steps 0 * i in finite number of steps For each step there is a derivation tree
![Page 44: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/44.jpg)
Example Let s0 such that
s0 x = 5 and s0 y = 7
S = (z:=x; x := y); y := z
![Page 45: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/45.jpg)
Factorial Program Input state s such that s x = 3
y := 1; while (x=1) do (y := y * x; x := x - 1)
![Page 46: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/46.jpg)
Program Termination Given a statement S and input s
– S terminates on s if there exists a finite derivation sequence starting at <S, s>
– S terminates successfully on s if there exists a finite derivation sequence starting at <S, s> leading to a final state
– S loops on s if there exists an infinite derivation sequence starting at <S, s>
![Page 47: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/47.jpg)
Properties of the Semantics S1 and S2 are semantically equivalent if:
– for all s and s’<S1, s> * s’ if and only if <S2, s> *s’
– there is an infinite derivation sequence starting at <S1, s> if and only if there is an infinite derivation sequence starting at <S2, s>
Deterministic– If <S, s> * s1 and <S, s> * s2 then s1=s2
The execution of S1; S2 on an input can be split into two parts:– execute S1 on s yielding a state s’
– execute S2 on s’
![Page 48: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/48.jpg)
Sequential Composition If <S1; S2, s> k s’’ then there exists a state s’
and numbers k1 and k2 such that– <S1, s> k1 s’
– <S2, s’> k2 s’’
– and k = k1 + k2
The proof uses induction on the length of derivation sequences– Prove that the property holds for all derivation
sequences of length 0– Prove that the property holds for all other derivation
sequences: » Show that the property holds for sequences of length k+1 using
the fact it holds on all sequences of length k (induction hypothesis)
![Page 49: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/49.jpg)
The Semantic Function Ssos
The meaning of a statement S is defined as a partial function from State to State
Ssos: Stm (State State) SsosSs = s’ if <S, s> *s’ and otherwise
Ssos Ss is undefined
![Page 50: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/50.jpg)
An Equivalence Result For every statement S of the While language
– SnatS = SsosS
![Page 51: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/51.jpg)
Extensions to While Abort statement (like C exit) Non determinism Parallelism Local Variables Procedures
– Static Scope– Dynamic scope
![Page 52: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/52.jpg)
The While Programming Language with Abort
Abstract syntaxS::= x := a | skip | S1 ; S2 | if b then S1 else S2 | while b do S| abort
Abort terminates the execution No new rules are needed in natural and structural
operational semantics Statements
– skip– abort– while true do skip
![Page 53: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/53.jpg)
Conclusion The natural semantics cannot distinguish between
looping and abnormal termination (unless the states are modified)
In the structural operational semantics looping is reflected by infinite derivations and abnormal termination is reflected by stuck configuration
![Page 54: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/54.jpg)
The Programming Language with Non-Determinism While
Abstract syntaxS::= x := a | skip | S1 ; S2 | if b then S1 else S2 | while b do S| S1 or S2
Either S1 or S2 is executed Example
– x := 1 or (x :=2 ; x := x+2)
![Page 55: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/55.jpg)
[or1ns] <S1 , s> s’
<S1 or S2, s> s’
The While Programming Language with Non-Determinism
Natural Semantics
[or2ns] <S2 , s> s’
<S1 or S2, s> s’
![Page 56: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/56.jpg)
The While Programming Language with Non-Determinism
Structural Semantics
![Page 57: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/57.jpg)
The While Programming Language with Non-Determinism
Examples x := 1 or (x :=2 ; x := x+2) (while true do skip) or (x :=2 ; x := x+2)
![Page 58: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/58.jpg)
Conclusion In the natural semantics non-determinism will
suppress looping if possible (mnemonic) In the structural operational semantics non-
determinism does not suppress looping
![Page 59: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/59.jpg)
The While Programming Language with Parallel Constructs
Abstract syntaxS::= x := a | skip | S1 ; S2 | if b then S1 else S2 | while b do S| S1 par S2
All the interleaving of S1 or S2 are executed Example
– x := 1 par (x :=2 ; x := x+2)
![Page 60: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/60.jpg)
The While Programming Language with Parallel Constructs
Structural Semantics[par1
sos] <S1 , s> <S’1, s’>
<S1 par S2, s> < S’1par S2, s’> [par2
sos] <S1 , s> s’
<S1 par S2, s> < S2, s’> [par3
sos] <S2 , s> <S’2, s’>
<S1 par S2, s> < S1par S’2, s’> [par4
sos] <S2 , s> s’
<S1 par S2, s> < S1, s’>
![Page 61: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/61.jpg)
The While Programming Language with Parallel Constructs
Natural Semantics
![Page 62: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/62.jpg)
Conclusion In the natural semantics immediate constituent is
an atomic entity so we cannot express interleaving of computations
In the structural operational semantics we concentrate on small steps so interleaving of computations can be easily expressed
![Page 63: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/63.jpg)
The While Programming Language with local variables and procedures
Abstract syntaxS::= x := a | skip | S1 ; S2 | if b then S1 else S2 | while b do S| begin Dv Dp S end | call pDv ::= var x := a ; Dv | Dp ::= proc p is S ; Dp |
![Page 64: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/64.jpg)
Conclusions Local Variables The natural semantics can “remember” local states Need to introduce stack or heap into state of the
structural semantics
![Page 65: Operational Semantics Mooly Sagiv Tel Aviv University 640-6706 Textbook: Semantics with Applications Chapter.](https://reader035.fdocuments.in/reader035/viewer/2022062504/5a4d1b557f8b9ab0599a947d/html5/thumbnails/65.jpg)
Conclusions Structural operational semantics allows us to
simulate low level computations without getting bugged into too many details
Natural semantics allows to abstract more– Local memory– Non termination
Thinking in concrete semantics is essential for a compiler writer