67
Program Analysis: Wrapping Up Uday Khedker (www.cse.iitb.ac.in/˜uday) Department of Computer Science and Engineering, Indian Institute of Technology, Bombay November 2017

Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

Program Analysis: Wrapping Up

Uday Khedker

(www.cse.iitb.ac.in/̃ uday)

Department of Computer Science and Engineering,

Indian Institute of Technology, Bombay

November 2017

Page 2: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

Part 1

About These Slides

Page 3: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: About These Slides 1/18

Copyright

These slides constitute the lecture notes for CS618 Program Analysis course atIIT Bombay and have been made available as teaching material accompanyingthe book:

• Uday Khedker, Amitabha Sanyal, and Bageshri Karkare. Data Flow

Analysis: Theory and Practice. CRC Press (Taylor and Francis Group).2009.

(Indian edition published by Ane Books in 2013)

Apart from the above book, some slides are based on the material from thefollowing books

• A. V. Aho, M. Lam, R. Sethi, and J. D. Ullman. Compilers: Principles,

Techniques, and Tools. Addison-Wesley. 2006.

• M. S. Hecht. Flow Analysis of Computer Programs. ElsevierNorth-Holland Inc. 1977.

These slides are being made available under GNU FDL v1.2 or later purely for

academic or research use.

Nov 2017 IIT Bombay

Page 4: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

Part 2

The Big Picture

Page 5: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 2/18

So what have learnt?

Education is what remains after you have forgotten

everything that was taught

- Albert Einstein

Nov 2017 IIT Bombay

Page 6: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Nov 2017 IIT Bombay

Page 7: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Static Dynamic

Program Code

Nov 2017 IIT Bombay

Page 8: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Abstract, Bounded, Single Instance Concrete, Unbounded, Infinitely Many

Static Dynamic

Program CodeProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram Execution

Nov 2017 IIT Bombay

Page 9: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Abstract, Bounded, Single Instance Concrete, Unbounded, Infinitely Many

Static Dynamic

Program CodeProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram Execution

MemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemory

Nov 2017 IIT Bombay

Page 10: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Abstract, Bounded, Single Instance Concrete, Unbounded, Infinitely Many

Static Dynamic

Program CodeProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram Execution

Summary Information

MemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemory

Nov 2017 IIT Bombay

Page 11: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 3/18

The Main Theme of the Course

Constructing suitable abstractions forsound & precise modelling ofruntime behaviour of programsefficiently

Abstract, Bounded, Single Instance Concrete, Unbounded, Infinitely Many

Static Dynamic

Program CodeProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram ExecutionProgram Execution

Summary Information

MemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemoryMemory

MemoryMemoryMemoryMemoryMemoryMemory

StaticAnalysis

Nov 2017 IIT Bombay

Page 12: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 4/18

Soundness and Precision of Static Analysis

Example Program Simplified IR Control Flow Graph

int a;

int f(int b)

{ int c;

c = a*2;

while (b <= c)

b = b+1;

if (b < 9)

b = b+a;

return b;

}

Nov 2017 IIT Bombay

Page 13: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 4/18

Soundness and Precision of Static Analysis

Example Program Simplified IR Control Flow Graph

int a;

int f(int b)

{ int c;

c = a*2;

while (b <= c)

b = b+1;

if (b < 9)

b = b+a;

return b;

}

1: c = a*2

2: if (b > c) goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9) goto 7

6: b = b+a

7: return b

Nov 2017 IIT Bombay

Page 14: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 4/18

Soundness and Precision of Static Analysis

Example Program Simplified IR Control Flow Graph

int a;

int f(int b)

{ int c;

c = a*2;

while (b <= c)

b = b+1;

if (b < 9)

b = b+a;

return b;

}

1: c = a*2

2: if (b > c) goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9) goto 7

6: b = b+a

7: return b

c = a*2

if (b>c)

b = b+1

if (b≥9)

b = b+a

return b

F

F

T

T

Nov 2017 IIT Bombay

Page 15: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Nov 2017 IIT Bombay

Page 16: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Trace 1a b c

0 : (1, 2, 3)1 : (1, 2, 2)2 : (1, 2, 2)3 : (1, 3, 2)4 : (1, 3, 2)2 : (1, 3, 2)5 : (1, 3, 2)5 : (1, 4, 2)7 : (1, 4, 2)

Nov 2017 IIT Bombay

Page 17: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Trace 1a b c

0 : (1, 2, 3)1 : (1, 2, 2)2 : (1, 2, 2)3 : (1, 3, 2)4 : (1, 3, 2)2 : (1, 3, 2)5 : (1, 3, 2)5 : (1, 4, 2)7 : (1, 4, 2)

Trace 2a b c

0 : (5, 10, 7)1 : (5, 10, 10)2 : (5, 10, 10)3 : (5, 11, 10)4 : (5, 11, 10)2 : (5, 11, 10)5 : (5, 11, 10)7 : (5, 11, 10)

Nov 2017 IIT Bombay

Page 18: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Trace 1a b c

0 : (1, 2, 3)1 : (1, 2, 2)2 : (1, 2, 2)3 : (1, 3, 2)4 : (1, 3, 2)2 : (1, 3, 2)5 : (1, 3, 2)5 : (1, 4, 2)7 : (1, 4, 2)

Trace 2a b c

0 : (5, 10, 7)1 : (5, 10, 10)2 : (5, 10, 10)3 : (5, 11, 10)4 : (5, 11, 10)2 : (5, 11, 10)5 : (5, 11, 10)7 : (5, 11, 10)

• Number of traces ispotentially infinite

Nov 2017 IIT Bombay

Page 19: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Trace 1a b c

0 : (1, 2, 3)1 : (1, 2, 2)2 : (1, 2, 2)3 : (1, 3, 2)4 : (1, 3, 2)2 : (1, 3, 2)5 : (1, 3, 2)5 : (1, 4, 2)7 : (1, 4, 2)

Trace 2a b c

0 : (5, 10, 7)1 : (5, 10, 10)2 : (5, 10, 10)3 : (5, 11, 10)4 : (5, 11, 10)2 : (5, 11, 10)5 : (5, 11, 10)7 : (5, 11, 10)

Trace 3a b c

0 : (−1, 1, 6)1 : (−1, 1,−2)2 : (−1, 1,−2)3 : (−1, 2,−2)4 : (−1, 2,−2)2 : (−1, 2,−2)3 : (−1, 3,−2)4 : (−1, 3,−2)2 : (−1, 3,−2). . .

• Number of traces ispotentially infinite

• Not all traces mayterminate

Nov 2017 IIT Bombay

Page 20: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 5/18

Execution Traces for Concrete Semantics

• A state: (Program Point,Variables 7→ Values)

• A trace: a valid sequence of states starting with a given initial state

1: c = a*2

2: if (b > c)

goto 5

3: b = b + 1

4: goto 2

5: if (b ≥ 9)

goto 7

6: b = b+a

7: return b

Trace 1a b c

0 : (1, 2, 3)1 : (1, 2, 2)2 : (1, 2, 2)3 : (1, 3, 2)4 : (1, 3, 2)2 : (1, 3, 2)5 : (1, 3, 2)5 : (1, 4, 2)7 : (1, 4, 2)

Trace 2a b c

0 : (5, 10, 7)1 : (5, 10, 10)2 : (5, 10, 10)3 : (5, 11, 10)4 : (5, 11, 10)2 : (5, 11, 10)5 : (5, 11, 10)7 : (5, 11, 10)

Trace 3a b c

0 : (−1, 1, 6)1 : (−1, 1,−2)2 : (−1, 1,−2)3 : (−1, 2,−2)4 : (−1, 2,−2)2 : (−1, 2,−2)3 : (−1, 3,−2)4 : (−1, 3,−2)2 : (−1, 3,−2). . .

• Number of traces ispotentially infinite

• Not all traces mayterminate

• We consider onlyterminating traces

Nov 2017 IIT Bombay

Page 21: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 6/18

Static Analysis Computes Abstractions of Traces

ExecutionTime

Traces

Nov 2017 IIT Bombay

Page 22: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 6/18

Static Analysis Computes Abstractions of Traces

ExecutionTime

Traces An Abstraction of Traces

Nov 2017 IIT Bombay

Page 23: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 6/18

Static Analysis Computes Abstractions of Traces

ExecutionTime

Traces An Abstraction of Traces

Nov 2017 IIT Bombay

Page 24: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 6/18

Static Analysis Computes Abstractions of Traces

ExecutionTime

Traces An Abstraction of Traces

For compile time modelling ofpossible runtime behaviours of aprogram

• compute a set of statesthat cover all traces

• associate the sets withappropriate program points

States may be defined in termsof properties derived from valuesof variables

Nov 2017 IIT Bombay

Page 25: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 7/18

Soundness of Abstractions

Sound

• An over-approximationof traces is sound

Nov 2017 IIT Bombay

Page 26: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 7/18

Soundness of Abstractions

Sound

• An over-approximationof traces is sound

• Missing any state inany trace causesunsoundness

Unsound

Nov 2017 IIT Bombay

Page 27: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 8/18

Precision of Sound Abstractions

Imprecise

Nov 2017 IIT Bombay

Page 28: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 8/18

Precision of Sound Abstractions

Imprecise More Precise

Nov 2017 IIT Bombay

Page 29: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 8/18

Precision of Sound Abstractions

Imprecise More Precise Even More Precise

Nov 2017 IIT Bombay

Page 30: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 8/18

Precision of Sound Abstractions

Imprecise More Precise Even More Precise

• Precision is relative, soundness is absolute

• Qualifiers “more precise” and “less precise”are meaningful

• Qualifiers “more sound” and “less sound”are not meaningful

Nov 2017 IIT Bombay

Page 31: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

Nov 2017 IIT Bombay

Page 32: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

Intuition

Formalism

• Intuitions representing abstract view ofthe run time behaviour

• Systematic formulation amenable toautomation and reasoning

Nov 2017 IIT Bombay

Page 33: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

Intuition

Formalism Specification

Algorithm

• Separate reasoning from theimplementation

• Systematize construction of analyzers

Nov 2017 IIT Bombay

Page 34: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

Intuition

Formalization

Algorithms• Formalizing underlying concepts

rigorously

• Formulating analysis in terms of dataflow equations (confluence,initialization, boundary info, flowfunctions etc.)

Nov 2017 IIT Bombay

Page 35: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

Intuition

Formalization

Algorithms• Generalize by relaxing conditions

(Previous abstractions should becomespecial cases)

Nov 2017 IIT Bombay

Page 36: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

Intuition

Formalization

Algorithms• Generalize by relaxing conditions

(Previous abstractions should becomespecial cases)

• Generalize the intuitions,specifications, or algorithm

Nov 2017 IIT Bombay

Page 37: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

Intuition

Formalization

Algorithms• Generalize by relaxing conditions

(Previous abstractions should becomespecial cases)

• Generalize the intuitions,specifications, or algorithm

Nov 2017 IIT Bombay

Page 38: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

Intuition

Formalization

Algorithms• Generalize by relaxing conditions

(Previous abstractions should becomespecial cases)

• Generalize the intuitions,specifications, or algorithm

Nov 2017 IIT Bombay

Page 39: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

• Filtering and distilling ideas

Intuition

Formalization

Algorithms

• Ask the right questions

• Separate relevant from irrelevant

Nov 2017 IIT Bombay

Page 40: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 9/18

Motifs Used for Building the Theme

• Intuition-formalism dichotomy

• Specification-implementation dichotomy

• Successive generalizations

• Filtering and distilling ideas

• Working from first principles

Intuition

Formalization

Algorithms

• First principles: A small set oforthogonal concepts

• Add as few concepts as possible to theset of first principles

Nov 2017 IIT Bombay

Page 41: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 10/18

Seeking Generalizations

Formalization/Formulation

Intuitions aboutprogram behaviour

Algorithm

Nov 2017 IIT Bombay

Page 42: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 11/18

yModule 1: Bit Vector Frameworksy

Data flow information at a program point u− represents information valid for all execution instances of u− depends on some or all paths,− starting at, or ending at, or passing through u

− may be generated, killed, or propagatedIntuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 43: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 11/18

yModule 1: Bit Vector Frameworksy

Data flow information at a program point u− represents information valid for all execution instances of u− depends on some or all paths,− starting at, or ending at, or passing through u

− may be generated, killed, or propagated

Representations− programs ≡ control flow graphs− data flow values ≡ sets or bit vectors− dependence of data flow values ≡ data flow equations

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 44: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 11/18

yModule 1: Bit Vector Frameworksy

Data flow information at a program point u− represents information valid for all execution instances of u− depends on some or all paths,− starting at, or ending at, or passing through u

− may be generated, killed, or propagated

Representations− programs ≡ control flow graphs− data flow values ≡ sets or bit vectors− dependence of data flow values ≡ data flow equations

− convergence− iterative refinement− initialization− round robin method

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 45: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 12/18

yModule 2: Theoretical Abstractionsy

− sound approximation of data flow information− merging data flow values− direction of flow, relationship with graph traversal− desired vs. computable solutionIn

tuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 46: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 12/18

yModule 2: Theoretical Abstractionsy

− sound approximation of data flow information− merging data flow values− direction of flow, relationship with graph traversal− desired vs. computable solution

− lattices, partial order, meet, descending chain condition (DCC)− monotonicity, distributivity and non-separability of flow functions− MFP and MoP assignments− information flow paths, depth and width of a CFG

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 47: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 12/18

yModule 2: Theoretical Abstractionsy

− sound approximation of data flow information− merging data flow values− direction of flow, relationship with graph traversal− desired vs. computable solution

− lattices, partial order, meet, descending chain condition (DCC)− monotonicity, distributivity and non-separability of flow functions− MFP and MoP assignments− information flow paths, depth and width of a CFG

− conservative initialization− complexity− work list based method

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 48: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 12/18

yModule 2: Theoretical Abstractionsy

− sound approximation of data flow information− merging data flow values− direction of flow, relationship with graph traversal− desired vs. computable solution

− lattices, partial order, meet, descending chain condition (DCC)− monotonicity, distributivity and non-separability of flow functions− MFP and MoP assignments− information flow paths, depth and width of a CFG

− conservative initialization− complexity− work list based method

Intuitions

Form

aliza

tion

Algorithm

• Theme: Generalization in formulations

• Learning outcome: Add the followingrequirements to the set of first principles

Monotonic flow functions and meetsemi-lattice satisfying DCC

Nov 2017 IIT Bombay

Page 49: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 13/18

yModule 3: General Frameworksy

− dependence of data flow values across entities− generation and killing depending upon the incoming information− flow insensitivity, may and must nature in flow sensitivity− use of program point in data flow informationIn

tuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 50: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 13/18

yModule 3: General Frameworksy

− dependence of data flow values across entities− generation and killing depending upon the incoming information− flow insensitivity, may and must nature in flow sensitivity− use of program point in data flow information

− Representations for data flow values: Sets, tuples, strings, graphs− modelling non-separability in flow functions using dependent parts− flow function operations− (e.g. path removal, factorization, extension, relation application)

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 51: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 13/18

yModule 3: General Frameworksy

− dependence of data flow values across entities− generation and killing depending upon the incoming information− flow insensitivity, may and must nature in flow sensitivity− use of program point in data flow information

− Representations for data flow values: Sets, tuples, strings, graphs− modelling non-separability in flow functions using dependent parts− flow function operations− (e.g. path removal, factorization, extension, relation application)

Intuitions

Form

aliza

tion

Algorithm

• Generalizations in formulation

• Observations:

Structure of heap accesses consist of repeatingpatterns that resemble the program structure

Program analysis should be driven by livenessto restrict the information to usable information

Nov 2017 IIT Bombay

Page 52: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 14/18

Module 4: Interprocedural Data Flow Analysis

− interprocedural validity of paths and context sensitivity− constructing summary flow functions Vs. propagating data flow values− orthogonality of context and data flow information− partitioning contexts based on data flow valuesIn

tuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 53: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 14/18

Module 4: Interprocedural Data Flow Analysis

− interprocedural validity of paths and context sensitivity− constructing summary flow functions Vs. propagating data flow values− orthogonality of context and data flow information− partitioning contexts based on data flow values

− lattices of flow functions, reducing function compositions and meets− data flow equations for constructing summary flow functions− value contexts, their exit values, and transitions

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 54: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 14/18

Module 4: Interprocedural Data Flow Analysis

− interprocedural validity of paths and context sensitivity− constructing summary flow functions Vs. propagating data flow values− orthogonality of context and data flow information− partitioning contexts based on data flow values

− lattices of flow functions, reducing function compositions and meets− data flow equations for constructing summary flow functions− value contexts, their exit values, and transitions

− work list based method− ordering of nodes in post or reverse post order

Intuitions

Form

aliza

tion

Algorithm

Nov 2017 IIT Bombay

Page 55: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 14/18

Module 4: Interprocedural Data Flow Analysis

− interprocedural validity of paths and context sensitivity− constructing summary flow functions Vs. propagating data flow values− orthogonality of context and data flow information− partitioning contexts based on data flow values

− lattices of flow functions, reducing function compositions and meets− data flow equations for constructing summary flow functions− value contexts, their exit values, and transitions

− work list based method− ordering of nodes in post or reverse post order

Intuitions

Form

aliza

tion

Algorithm

• Generalizations in formulation and algorithm

• Observation:

Separating relevant information from irrelevantinformation can have a significant impact

Nov 2017 IIT Bombay

Page 56: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 15/18

Sequence of Generalizations in the Course Modules

Bit VectorFrameworks

Nov 2017 IIT Bombay

Page 57: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 15/18

Sequence of Generalizations in the Course Modules

Bit VectorFrameworks

Theoretical abstractions

Nov 2017 IIT Bombay

Page 58: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 15/18

Sequence of Generalizations in the Course Modules

Bit VectorFrameworks

Theoretical abstractions

ddflo

wframe

worksGener

aldframeworksdadatdatadflow

flow

General frameworks

Nov 2017 IIT Bombay

Page 59: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 15/18

Sequence of Generalizations in the Course Modules

Bit VectorFrameworks

Theoretical abstractions

ddflo

wframe

worksGener

aldframeworksdadatdatadflow

flow

General frameworks

Intraprocedural Level

Nov 2017 IIT Bombay

Page 60: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 15/18

Sequence of Generalizations in the Course Modules

Bit VectorFrameworks

Theoretical abstractions

ddflo

wframe

worksGener

aldframeworksdadatdatadflow

flow

General frameworks

Intraprocedural Level Interprocedural Level

Nov 2017 IIT Bombay

Page 61: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 16/18

Takeaways of the Course

• Data Flow Analysis:

Minimal conditions for devising a data flow framework

◮ Intraprocedural formulation:

− Meet semilattice satisfying the descending chain condition, and− Monotonic flow functions

◮ Extension to interprocedural level: Additional restrictions

− Value based approach: Finiteness of lattice− Functional approach: Distributive primitive entity functions

Nov 2017 IIT Bombay

Page 62: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 16/18

Takeaways of the Course

• Data Flow Analysis:

Minimal conditions for devising a data flow framework

◮ Intraprocedural formulation:

− Meet semilattice satisfying the descending chain condition, and− Monotonic flow functions

◮ Extension to interprocedural level: Additional restrictions

− Value based approach: Finiteness of lattice− Functional approach: Distributive primitive entity functions

• General:

◮ Generalization, refinements, distilling the essense◮ Asking the right questions◮ Separating relevant information from the irrelevant information

Nov 2017 IIT Bombay

Page 63: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 17/18

Still Bigger Picture . . .

Scope of the course: Generic static analyses for imperative languages

Did not cover

Nov 2017 IIT Bombay

Page 64: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 17/18

Still Bigger Picture . . .

Scope of the course: Generic static analyses for imperative languages

Did not cover

• Influences of other languages features

◮ Concurrency, Object orientation, Coroutines, Exception handling◮ Declarative paradigms: functional or logic languages

Nov 2017 IIT Bombay

Page 65: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 17/18

Still Bigger Picture . . .

Scope of the course: Generic static analyses for imperative languages

Did not cover

• Influences of other languages features

◮ Concurrency, Object orientation, Coroutines, Exception handling◮ Declarative paradigms: functional or logic languages

• Influences of other goals

◮ Verification and validation, testing (e.g. analyses for finding bugsdoes not require exhaustiveness or soundness)

◮ Path sensitive analyses◮ Shape analysis◮ Optimization specific analyses◮ Adhoc techniques of achieving efficiency◮ Analyses for JIT compilation◮ Parallelization, Vetorization, Dependence analysis

Nov 2017 IIT Bombay

Page 66: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 17/18

Still Bigger Picture . . .

Scope of the course: Generic static analyses for imperative languages

Did not cover

• Influences of other languages features

◮ Concurrency, Object orientation, Coroutines, Exception handling◮ Declarative paradigms: functional or logic languages

• Influences of other goals

◮ Verification and validation, testing (e.g. analyses for finding bugsdoes not require exhaustiveness or soundness)

◮ Path sensitive analyses◮ Shape analysis◮ Optimization specific analyses◮ Adhoc techniques of achieving efficiency◮ Analyses for JIT compilation◮ Parallelization, Vetorization, Dependence analysis

• Other analysis methods

◮ Abstract interpretation, Type inference, Constraint resolution

Nov 2017 IIT Bombay

Page 67: Program Analysis: Wrapping Upuday/soft-copies/dfa-summary.pdf · These slides are being made available under GNU FDL v1.2 or later purely for academic or research use. Nov2017 IITBombay

CS 618 Wrap Up: The Big Picture 18/18

Last But Not the Least

Thank You!

Nov 2017 IIT Bombay