Program Analysis
Chris Hankin(clh)
Data Flow Analysis Control Flow Analysis Abstract Interpretation Type and Effect Systems Correctness Efficiency Program Analysis – p.1/23
Program Analysis Chris Hankin(clh) Efficiency Type and Effect - - PowerPoint PPT Presentation
Program Analysis Chris Hankin(clh) Efficiency Type and Effect Control Flow Analysis Systems Data Flow Abstract Analysis Interpretation Correctness Program Analysis p.1/23 Overview Introduction Data Flow Analysis Control Flow
Data Flow Analysis Control Flow Analysis Abstract Interpretation Type and Effect Systems Correctness Efficiency Program Analysis – p.1/23
Program Analysis – p.2/23
Program Analysis – p.3/23
Program Analysis – p.4/23
;
; while
do
;
;
;
Program Analysis – p.5/23
Program Analysis – p.6/23
m: unknown n: unknown
m: unknown n: unknown
m: even n: unknown
m: even n: unknown
m: even n: unknown
m: even n: unknown
Program Analysis – p.7/23
;
Program Analysis – p.8/23
yes means definitely yes, and no means possibly no.
m is even.
Program Analysis – p.9/23
Program Analysis – p.10/23
Program Analysis – p.11/23
Program Analysis – p.12/23
Program Analysis – p.13/23
Program Analysis – p.14/23
RD
for all program points, p do RD(p) :=
❁; RD(1) :=
✣;
Program Analysis – p.15/23
change := true; while change do change := false; for all program points, p do new :=
❂ ✥ ✦ ✧ ✗ ✔ ★ ✩ ❂ ✪f(RD,p’) if RD(p)
❃ ✝new then change := true; RD(p) := new;
f(RD,p) = (RD(p)
✮kill(p))
✲gen(p);
Program Analysis – p.16/23
Program Analysis – p.17/23
Program Analysis – p.18/23
RD
❄FV
✚ ❅ ✢RD
❄RD
❄ ❯ ✄ ❇ ❯ ✭ ✄RD
❄ ❯ ✄ ❱ ❯ ✟ ❇ ❯ ✭ ✄ ❱ ❯ ✟Program Analysis – p.19/23
RD
❄ ❯ ✟ ❇ ❯ ✭ ✟RD
❄ ❯ ✄ ❱ ❯ ✟ ❇ ❯ ✄ ❱ ❯ ✭ ✟RD
❄ ❯ ✄ ❇ ❯ ✭ ✄RD
❄ ❲ ❳RD
❄ ❯ ✟ ❇ ❯ ✭ ✟RD
❄ ❲ ❳RD
❄ ❯ ❇ ❯ ✭RD
❄ ❵ ❬ ❲ ❫ ❭Program Analysis – p.20/23
Program Analysis – p.21/23
RD
❄Program Analysis – p.22/23
RD
❄ ❯ ✄ ❇ ❯ ✟ ❇ ❖ ❖ ❖ ❇ ❯❢❡ ❣ ✄Program Analysis – p.23/23