operational semantics program testing and analysis · 1 program testing and analysis: operational...

Post on 09-Jul-2020

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Program Testing and Analysis:

Operational Semantics

Dr. Michael Pradel

Software Lab, TU Darmstadt

2

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

What does the following code print?

Options: 5, 7, or something else

3

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

Correct answer: 5

3

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

Correct answer: 5

eval() evaluatesJavaScript codegiven as a string

3

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

Correct answer: 5

Store function into variable(functions are first-classobjects)

3

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

Correct answer: 5

Define a function andcall it immediately

3

Warm-up Quiz

var e = eval;

(function f() {var x = 5;e("x=7")console.log(x);

})();

Correct answer: 5

Indirect eval():Works in globalscope rather thanlocal scope

4

Follow Up on Last Week

(Hand-written notes)

5

Big Picture

Last lecture:� Syntax of languages

� Representations of programs

This lecture:� Assign meaning (= semantics) to programs

� Focus: Operational semantics of imperativelanguages

� Formal foundation for specifying languages andfor describing dynamic analyses

6

Plan for Today

� Motivation & preliminaries

� Abstract syntax of SIMP

� An abstract machine for SIMP

� Structural operation semantics forSIMP� Small-step semantics

� Big-step semantics

1

2

3

4

6

5

7

Plan for Today

� Motivation & preliminaries

� Abstract syntax of SIMP

� An abstract machine for SIMP

� Structural operation semantics forSIMP� Small-step semantics

� Big-step semantics

7

8

9

10

11

8

Plan for Today

� Motivation & preliminaries

� Abstract syntax of SIMP

� An abstract machine for SIMP

� Structural operation semantics forSIMP� Small-step semantics

� Big-step semantics

12

13

14

15

top related