Two Approaches to Inte terprocedural l Data ta Flow w Analys - - PowerPoint PPT Presentation

โ–ถ
two approaches to inte terprocedural l data ta flow w
SMART_READER_LITE
LIVE PREVIEW

Two Approaches to Inte terprocedural l Data ta Flow w Analys - - PowerPoint PPT Presentation

Two Approaches to Inte terprocedural l Data ta Flow w Analys lysis is Micha Sharir ir Amir Pnueli li Part Two: The Call String g Approach ch 12.06.2010 Nikolai Knopp 1 Recap cap Functional approach main p if a=0 T


slide-1
SLIDE 1

Two Approaches to Inte terprocedural l Data ta Flow w Analys lysis is

Micha Sharir ir Amir Pnueli li

12.06.2010 Nikolai Knopp

Part Two: The Call String g Approach ch

1

slide-2
SLIDE 2

โ„Ž(๐‘œ1,๐‘œ2) ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ1 ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ1)

๐‘”

(๐‘œ2,๐‘“๐‘›๐‘๐‘—๐‘œ)

Recap cap

12.06.2010 Nikolai Knopp 2

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Functional approach

๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t if a=0 return

slide-3
SLIDE 3

โ„Ž(๐‘œ1,๐‘œ2) ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ1 ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ1)

๐‘”

(๐‘œ2,๐‘“๐‘›๐‘๐‘—๐‘œ)

Recap cap

12.06.2010 Nikolai Knopp 3

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Functional approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t if a=0 return

slide-4
SLIDE 4

โ„Ž(๐‘œ1,๐‘œ2) ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ1 ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ1)

๐‘”

(๐‘œ2,๐‘“๐‘›๐‘๐‘—๐‘œ)

Recap cap

12.06.2010 Nikolai Knopp 4

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Functional approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐œš(๐‘ ๐‘ž,๐‘“๐‘ž)

if a=0 return

slide-5
SLIDE 5

โ„Ž(๐‘œ1,๐‘œ2) ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ1 ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ1)

๐‘”

(๐‘œ2,๐‘“๐‘›๐‘๐‘—๐‘œ)

Recap cap

12.06.2010 Nikolai Knopp 5

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Functional approach

a*b avail.? ๐‘œ2

๐œš(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ2)

๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

โŠค = 1 ๐œš(๐‘ ๐‘ž,๐‘“๐‘ž)

if a=0 return

slide-6
SLIDE 6

Motivat ation for a different approa

  • ach

ch

๏‚ก Avoid expensive functional compositions ๏‚ก Possibility to trade off precision vs.

performance to reduce complexity

12.06.2010 Nikolai Knopp 6

slide-7
SLIDE 7

Struct cture

1.

  • 1. Defini

nition n of a new DF problem (๐‘ดโˆ—,๐‘ฎโˆ—)

  • 2. Proof: Solution to ๐‘€โˆ—,๐บโˆ— โ‰ก MOP solution
  • 3. Feasibility and precise variants
  • 4. Approximative solution

12.06.2010 Nikolai Knopp 7

slide-8
SLIDE 8

Recap cap: Interproced

  • cedural

al Grap aphs

Two representations:

1.

๐ป = ๐‘‚๐‘ž

๐‘ž

, ๐น๐‘ž

๐‘ž

2.

๐ปโˆ— = ๐‘‚๐‘ž

๐‘ž

, ๐นโˆ—

12.06.2010 Klaas Boesche 8

p

โ€ฆ โ€ฆ call p

s

๐น๐‘ก ๐น๐‘ก ๐น๐‘ก

1

return โ€ฆ

๐‘ 

๐‘ž

๐‘“๐‘ž ๐น1 ๐น1 ๐น๐‘ž ๐น๐‘ž

๐น๐‘ž = ๐น๐‘ž

0 โˆช ๐น๐‘ž 1

๐นโˆ— = ๐น0 โˆช ๐น1 ๐น0 = ๐น๐‘ž

๐‘ž

slide-9
SLIDE 9

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 9

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-10
SLIDE 10

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 10

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-11
SLIDE 11

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 11

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( ,โŠค)

๐‘‘2

slide-12
SLIDE 12

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 12

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( ,1)

๐‘‘2

slide-13
SLIDE 13

if a=0

( ๐‘‘1 ,1)

return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 13

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-14
SLIDE 14

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 14

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( ๐‘‘1 ,1)

๐‘‘2

slide-15
SLIDE 15

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 15

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( ๐‘‘1 ,โŠค)

๐‘‘2

slide-16
SLIDE 16

if a=0

( ๐‘‘1๐‘‘2 , โŠค)

return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 16

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-17
SLIDE 17

if a=0 return

( ๐‘‘1๐‘‘2 , โŠค)

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 17

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-18
SLIDE 18

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 18

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( ๐‘‘1 ,โŠค)

๐‘‘2

slide-19
SLIDE 19

if a=0 return

( ๐‘‘1 ,1)

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 19

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

๐‘‘2

slide-20
SLIDE 20

if a=0 return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

Basi sic c idea

12.06.2010 Nikolai Knopp 20

call p t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ

Call String (CS) approach

a*b avail.? ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a, b t := a * b t := a * b print t

( , 1)

๐‘‘2

slide-21
SLIDE 21

Definition:

  • n: Call strings

๏‚ก Let ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ

decomposed as:

๏‚ก

๐‘‘1๐‘‘2 โ€ฆ ๐‘‘๐‘˜ =: ๐›ฟ โˆˆ ฮ“ call string (CS) to ๐‘Ÿ in ๐ปโˆ—.

๐œ‡ โˆˆ ฮ“ is empty call string (๐‘˜ = 0 in ๐‘›๐‘๐‘—๐‘œ).

๏‚ก ฮ“ = space of valid call strings in ๐ปโˆ— ๏‚ก ๐ท๐‘: ๐ฝ๐‘Š๐‘„ โ†’ ฮ“ with ๐ท๐‘ ๐‘Ÿ = ๐›ฟ

12.06.2010 Nikolai Knopp 21

๐‘›๐‘๐‘—๐‘œ

๐‘œ

call call

๐‘‘1 ๐‘‘๐‘˜

โ€ฆ

๐‘Ÿ1 ๐‘Ÿ๐‘˜ ๐‘Ÿ๐‘˜+1

๐‘ž๐‘˜ ๐‘ž๐‘˜+1

slide-22
SLIDE 22

New DF framew mework

  • rk

๏‚ก

๐‘€โˆ—,๐บโˆ— โ‰” โ€œExtendedโ€ version of (L,F)

  • Uses interprocedura

ural flow graph ๐ปโˆ—

  • ๐‘€โˆ—: Values โˆˆ ๐‘€ tagged with call strings โˆˆ ฮ“
  • ๐บโˆ—: For data set ๐œŠ โˆˆ Lโˆ— apply edge effect to call

string and value

12.06.2010 Nikolai Knopp

slide-23
SLIDE 23

Value dom

  • mai

ain ๐‘€โˆ—

๏‚ก ๐‘€โˆ— โ‰” ฮ“ โ†’ ๐‘€ semi-lattice

  • โŠคโˆ— = ๐›ฟ โ†ฆ โŠค
  • โŠฅโˆ— = ๐›ฟ โ†ฆ โŠฅ
  • โ‹€ pointwise in ๐‘€:

๐œŠ1 โˆง ๐œŠ2 ๐›ฟ = ๐œŠ1 ๐›ฟ โˆง ๐œŠ2 ๐›ฟ

๏‚ก โ€œ๐œŠ โˆˆ ๐‘€โˆ— maps call strings ๐›ฟ

to values in ๐‘€ propagated via all paths ๐‘Ÿ โˆˆ ๐ท๐‘โˆ’1 ๐›ฟ โ€

12.06.2010 Nikolai Knopp 23

if a=0 call p a := a - 1

T F

๐‘ 

๐‘ž

๐‘‘2

๐œŠ

slide-24
SLIDE 24

Value dom

  • mai

ain ๐‘€โˆ—

๏‚ก ๐‘€โˆ— โ‰” ฮ“ โ†’ ๐‘€ semi-lattice

  • โŠคโˆ— = ๐›ฟ โ†ฆ โŠค
  • โŠฅโˆ— = ๐›ฟ โ†ฆ โŠฅ
  • โ‹€ pointwise in ๐‘€:

๐œŠ1 โˆง ๐œŠ2 ๐›ฟ = ๐œŠ1 ๐›ฟ โˆง ๐œŠ2 ๐›ฟ

๏‚ก โ€œ๐œŠ โˆˆ ๐‘€โˆ— maps call strings ๐›ฟ

to values in ๐‘€ propagated via all paths ๐‘Ÿ โˆˆ ๐ท๐‘โˆ’1 ๐›ฟ โ€

12.06.2010 Nikolai Knopp 24

๐œŠ = ๐‘‘1 , 1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค ๐œŠ ๐‘‘1 = 1 ๐œŠ ๐‘‘2 = โŠฅ

if a=0 call p a := a - 1

T F

๐‘ 

๐‘ž

๐‘‘2

๐œŠ

slide-25
SLIDE 25

Edge effect cts s doma main ๐บโˆ—

๏‚ก ๐บโˆ— โ‰” ๐‘€โˆ— โ†’ ๐‘€โˆ— embeds edge effects from ๐บ

into ๐‘€โˆ— domain

๏‚ก For ๐‘›, ๐‘œ โˆˆ ๐นโˆ— and data ๐œŠ = . . , ๐›ฟโ€ฒ, ๐‘คโ€ฒ , . .

โˆˆ ๐‘€โˆ— at ๐‘›, data at ๐‘œ is ๐‘” ๐‘›,๐‘œ

โˆ—

๐œŠ = . . , ๐›ฟ, ๐‘ค ,. .

  • update each ๐›ฟโ€ฒ to reflect ๐‘›, ๐‘œ taken:

๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›,๐‘œ

  • propagate effect ๐‘” ๐‘›,๐‘œ โˆˆ ๐‘€ applied to each ๐‘คโ€ฒ:

๐‘ค = ๐‘” ๐‘›,๐‘œ ๐‘คโ€ฒ

slide-26
SLIDE 26

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 26

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1

call ๐‘ž1 return

๐‘œ1 ๐‘“๐‘ž ๐‘œ2

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

slide-27
SLIDE 27

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 27

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1 โˆ˜ ๐‘ 

๐‘ž, ๐‘‘2 = โŒฉ๐‘‘1โŒช

๐‘‘1

call ๐‘ž1 return

๐‘œ1 ๐‘“๐‘ž ๐‘œ2 ๐‘‘1 โˆ˜ ๐‘œ2,๐‘“๐‘ž = โŒฉ๐‘‘1โŒช

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

  • 1. Interproc.
slide-28
SLIDE 28

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 28

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1 โˆ˜ ๐‘‘2, ๐‘ 

๐‘ž = โŒฉ๐‘‘1, ๐‘‘2โŒช

๐‘‘1 โˆ˜ ๐‘ 

๐‘ž, ๐‘‘2 = โŒฉ๐‘‘1โŒช

๐‘‘1

call ๐‘ž1

๐œ‡ โˆ˜ ๐‘‘1, ๐‘ 

๐‘ž = โŒฉ๐‘‘1โŒช

return

๐‘œ1 ๐‘“๐‘ž ๐‘œ2 ๐‘‘1 โˆ˜ ๐‘œ2,๐‘“๐‘ž = โŒฉ๐‘‘1โŒช

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

  • 1. Interproc.
  • 2. Call
slide-29
SLIDE 29

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 29

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1 โˆ˜ ๐‘‘2, ๐‘ 

๐‘ž = โŒฉ๐‘‘1, ๐‘‘2โŒช

๐‘‘1 โˆ˜ ๐‘ 

๐‘ž, ๐‘‘2 = โŒฉ๐‘‘1โŒช

๐‘‘1

call ๐‘ž1

๐œ‡ โˆ˜ ๐‘‘1, ๐‘ 

๐‘ž = โŒฉ๐‘‘1โŒช

return

๐‘œ1 ๐‘“๐‘ž ๐‘‘1 โˆ˜ ๐‘“๐‘ž, ๐‘œ1 = ๐œ‡ ๐‘‘1๐‘‘2 โˆ˜ ๐‘“๐‘ž, ๐‘œ2 = ๐‘‘1 ๐‘œ2 ๐‘‘1 โˆ˜ ๐‘œ2,๐‘“๐‘ž = โŒฉ๐‘‘1โŒช

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

  • 1. Interproc.
  • 2. Call
  • 3. Return
slide-30
SLIDE 30

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 30

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1 โˆ˜ ๐‘‘2, ๐‘ 

๐‘ž = โŒฉ๐‘‘1, ๐‘‘2โŒช

๐‘‘1 โˆ˜ ๐‘ 

๐‘ž, ๐‘‘2 = โŒฉ๐‘‘1โŒช

๐‘‘1

call ๐‘ž1

๐œ‡ โˆ˜ ๐‘‘1, ๐‘ 

๐‘ž = โŒฉ๐‘‘1โŒช

return

๐‘œ1 ๐‘“๐‘ž ๐‘‘1 โˆ˜ ๐‘“๐‘ž, ๐‘œ1 = ๐œ‡ ๐‘‘1๐‘‘2 โˆ˜ ๐‘“๐‘ž, ๐‘œ2 = ๐‘‘1 ๐‘œ2 ๐‘‘1 โˆ˜ ๐‘œ2,๐‘“๐‘ž = โŒฉ๐‘‘1โŒช

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

๐‘‘1 โˆ˜ ๐‘“๐‘ž, ๐‘œ2 undef. ๐‘‘1๐‘‘2 โˆ˜ ๐‘“๐‘ž, ๐‘œ1 undef.

  • 1. Interproc.
  • 2. Call
  • 3. Return
  • 4. invalid
slide-31
SLIDE 31

CS updat ate operat ation

  • n โˆ˜

12.06.2010 Nikolai Knopp 31

๐‘ž ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž

๐‘‘1 โˆ˜ ๐‘‘2, ๐‘ 

๐‘ž = โŒฉ๐‘‘1, ๐‘‘2โŒช

๐‘‘1 โˆ˜ ๐‘ 

๐‘ž, ๐‘‘2 = โŒฉ๐‘‘1โŒช

๐‘‘1

call ๐‘ž1

๐œ‡ โˆ˜ ๐‘‘1, ๐‘ 

๐‘ž = โŒฉ๐‘‘1โŒช

return

๐‘œ1 ๐‘“๐‘ž ๐‘‘1 โˆ˜ ๐‘“๐‘ž, ๐‘œ1 = ๐œ‡ ๐‘‘1๐‘‘2 โˆ˜ ๐‘“๐‘ž, ๐‘œ2 = ๐‘‘1 ๐‘œ2 ๐‘‘1 โˆ˜ ๐‘œ2,๐‘“๐‘ž = โŒฉ๐‘‘1โŒช

๏‚ก โˆ˜โˆถ ฮ“ ร— ๐นโˆ— โ†’ ฮ“ updates call strings along edges

๐‘‘1 โˆ˜ ๐‘“๐‘ž, ๐‘œ2 undef. ๐‘‘1๐‘‘2 โˆ˜ ๐‘“๐‘ž, ๐‘œ1 undef.

  • 1. Interproc.
  • 2. Call
  • 3. Return
  • 4. invalid

๐‘‘1 โˆ˜ ๐‘‘1, ๐‘ 

๐‘ž undef.

slide-32
SLIDE 32

โˆ˜ consi sist stent with ๐ฝ๐‘Š๐‘„

๏‚ก ๐›ฟโ€ฒ โˆ˜ ๐‘›, ๐‘œ = ๐›ฟ only defined iff:

  • 1. (By definition)

A path ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘› exists with ๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ

  • 2. (Lemma)

๐‘Ÿ = ๐‘Ÿโ€ฒ||(๐‘›,๐‘œ) lies in ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ and ๐ท๐‘ ๐‘Ÿ = ๐›ฟ

โ‡’ โ€œโˆ˜ only updates and yields call strings for interprocedurally valid pathsโ€

12.06.2010 Nikolai Knopp 32

slide-33
SLIDE 33

Edge effect cts s doma main ๐บโˆ—

๏‚ก ๐บโˆ— โ‰” ๐‘€โˆ— โ†’ ๐‘€โˆ— embeds edge effects from ๐บ

into ๐‘€โˆ— domain

๏‚ก For ๐‘›, ๐‘œ โˆˆ ๐นโˆ— and data ๐œŠ = . . , ๐›ฟโ€ฒ, ๐‘คโ€ฒ , . .

โˆˆ ๐‘€โˆ— at ๐‘›, data at ๐‘œ is ๐‘” ๐‘›,๐‘œ

โˆ—

๐œŠ = . . , ๐›ฟ, ๐‘ค ,. .

  • update each ๐›ฟโ€ฒ to reflect ๐‘›, ๐‘œ taken:

๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›,๐‘œ

  • propagate effect ๐‘” ๐‘›,๐‘œ โˆˆ ๐‘€ applied to each ๐‘คโ€ฒ:

๐‘ค = ๐‘” ๐‘›,๐‘œ ๐‘คโ€ฒ

slide-34
SLIDE 34

๐‘‘1 , 1 , ๐‘‘1๐‘‘2 ,โŠค ๐œŠ

call p a := a - 1

๐‘‘2

๐‘” ๐‘›,๐‘‘2

๐‘›

Edge effect cts s ๐‘” ๐‘›,๐‘œ

โˆ—

Defini nition: n: Let ๐‘›, ๐‘œ โˆˆ ๐นโˆ—, ๐‘” ๐‘›,๐‘œ โˆˆ ๐บ, ๐œŠ โˆˆ ๐‘€โˆ—.

12.06.2010 34 Nikolai Knopp

slide-35
SLIDE 35

๐‘‘1 , 1 , ๐‘‘1๐‘‘2 ,โŠค ๐œŠ ๐‘‘1 , โŠค , ๐‘‘1๐‘‘2 ,โŠค

call p a := a - 1

๐‘‘2

๐‘” ๐‘›,๐‘‘2 ๐‘” ๐‘›,๐‘‘2

โˆ—

๐œŠ

๐‘›

Edge effect cts s ๐‘” ๐‘›,๐‘œ

โˆ—

Defini nition: n: Let ๐‘›, ๐‘œ โˆˆ ๐นโˆ—, ๐‘” ๐‘›,๐‘œ โˆˆ ๐บ, ๐œŠ โˆˆ ๐‘€โˆ—.

12.06.2010 35 Nikolai Knopp

slide-36
SLIDE 36

๐‘‘1 , 1 , ๐‘‘1๐‘‘2 ,โŠค ๐œŠ ๐‘‘1 , โŠค , ๐‘‘1๐‘‘2 ,โŠค

call p a := a - 1

๐‘‘2

๐‘” ๐‘›,๐‘‘2 ๐œŠ ๐‘‘1 ๐‘” ๐‘›,๐‘‘2

โˆ—

๐œŠ ๐‘” ๐‘›,๐‘‘2

โˆ—

๐œŠ ๐‘‘1

๐‘›

Edge effect cts s ๐‘” ๐‘›,๐‘œ

โˆ—

Defini nition: n: Let ๐‘›, ๐‘œ โˆˆ ๐นโˆ—, ๐‘” ๐‘›,๐‘œ โˆˆ ๐บ, ๐œŠ โˆˆ ๐‘€โˆ—.

12.06.2010 36 Nikolai Knopp

๐‘” ๐‘›,๐‘œ if โˆƒ๐›ฟโ€ฒ with ๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›, ๐‘œ else โŠฅ ๐‘” ๐‘›,๐‘œ

โˆ—

โ‰” ๐œŠ ๐›ฟ ๐œŠ ๐›ฟโ€ฒ โˆ€ ๐›ฟ โˆˆ ฮ“

slide-37
SLIDE 37

Edge effect cts s doma main ๐บโˆ—

Define ๐บโˆ— โІ ๐‘€โˆ— โ†’ ๐‘€โˆ— such that

1.

๐บโˆ— smallest set containing ๐‘” ๐‘›,๐‘œ

โˆ—

| ๐‘›, ๐‘œ โˆˆ ๐นโˆ— โˆช ๐‘—๐‘’๐‘€โˆ—

2.

๐บโˆ— closed under functional composition and โ‹€

slide-38
SLIDE 38

Lemm mma: a: Prop

  • perties

s of ๐บโˆ—

1.

๐บ monotone distributive in ๐‘€ โ‡’ ๐บโˆ— monotone distributive in ๐‘€โˆ—

2.

๐บ distributive in ๐‘€ โ‡’ ๐บโˆ— continuo nuous us in ๐‘€โˆ—: For an infinite collection ๐œŠ๐‘™ ๐‘™โ‰ฅ1 โІ ๐‘€โˆ— and ๐‘›, ๐‘œ โˆˆ ๐นโˆ—: ๐‘” ๐‘›,๐‘œ

โˆ—

๐œŠ๐‘™

๐‘™

= ๐‘” ๐‘›,๐‘œ

โˆ—

๐œŠ๐‘™

๐‘™

12.06.2010 Nikolai Knopp 38

slide-39
SLIDE 39

Dataf aflow equat ations

  • ns ๐‘ฆ๐‘œ

โˆ—

๏‚ก The dataflow problem for ๐บโˆ—,๐‘€โˆ— :

  • ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ—

= ๐œ‡, โŠค

  • ๐‘ฆ๐‘œ

โˆ— = โ‹€

๐‘” ๐‘›,๐‘œ

โˆ—

๐‘ฆ๐‘›

โˆ— ๐‘›,๐‘œ โˆˆ๐นโˆ—

๐‘œ โˆˆ ๐‘‚โˆ— โˆ’ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๏‚ก Claim:

โˆƒ maximum fixed-point solution (MFP MFPCS

CS) for

๐‘ฆ๐‘œ

โˆ— ๐‘œโˆˆ๐‘‚โˆ—

12.06.2010 Nikolai Knopp 40

slide-40
SLIDE 40

Proo

  • of: Exist

stence ce of max. FP solution

  • n

๏‚ก Iteratively solving the equations yields decreasing

(๐บโˆ— monotone) chains ๐‘ฆ๐‘œ

โˆ— ๐‘— โ‰ฅ ๐‘ฆ๐‘œ โˆ— ๐‘—+1 โˆ€๐‘œ โˆˆ ๐‘‚โˆ—.

Then โˆ€๐›ฟ โˆˆ ฮ“ ๐‘ฆ๐‘œ

โˆ— ๐‘— ๐›ฟ โ‰ฅ ๐‘ฆ๐‘œ โˆ— ๐‘—+1 ๐›ฟ

a decreasing chain in ๐‘€ with limit lim๐‘ฆ๐‘œ

โˆ— ๐›ฟ (exists as

๐‘€ bounded).

๏‚ก ๐‘ฆ๐‘œ

โˆ— โ‰” lim ๐‘—โ†’โˆž ๐‘ฆ๐‘œ โˆ— ๐‘— possibly infinite but well-defined

โ‡’ ๐‘ฆ๐‘œ

โˆ— ๐‘œโˆˆ๐‘‚โˆ— is maximal FP solution to DF problem.

12.06.2010 Nikolai Knopp 41

slide-41
SLIDE 41

Maximum mum FP solution

  • n of (๐‘€โˆ—, ๐บโˆ—)

12.06.2010 Nikolai Knopp 42

๏‚ก Initialise ๐‘ฆ๐‘œ

โˆ— ๐‘œโˆˆ๐‘‚โˆ— with

  • ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ— 0

= ๐œ‡, โŠค

  • ๐‘ฆ๐‘œ

โˆ— 0 = โŠฅโˆ—

๏‚ก Result if ฮ“

  • finite

te: Any iterative algorithm terminates and reaches MFP.

  • infini

nite te: Iteration may diverge, intermediate steps unsafe approx. of MFP ๐‘œ โˆˆ ๐‘‚โˆ— โˆ’ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

slide-42
SLIDE 42

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 43

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-43
SLIDE 43

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 44

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-44
SLIDE 44

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 45

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-45
SLIDE 45

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 46

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 โŒฉ๐‘‘1โŒช,1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-46
SLIDE 46

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 47

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 โŒฉ๐‘‘1โŒช,1 โŒฉ๐‘‘1โŒช,1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-47
SLIDE 47

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 48

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 โŒฉ๐‘‘1โŒช,1 โŒฉ๐‘‘1โŒช,1 ๐‘‘1 ,โŠค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-48
SLIDE 48

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Exam ample

12.06.2010 Nikolai Knopp 49

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค ๐œ‡, 1 โŒฉ๐‘‘1โŒช,1 ๐‘‘1 ,โŠค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-49
SLIDE 49

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

Exam ample

12.06.2010 Nikolai Knopp 50

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค ๐œ‡, 1 ๐‘‘1 ,โŠค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-50
SLIDE 50

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

Exam ample

12.06.2010 Nikolai Knopp 51

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-51
SLIDE 51

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

Exam ample

12.06.2010 Nikolai Knopp 52

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-52
SLIDE 52

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

Exam ample

...

12.06.2010 Nikolai Knopp 53

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

slide-53
SLIDE 53

Chap apter summ mmar ary

Call string ng approach: ch:

๏‚ก New dataflow problem on top of (๐‘€, ๐บ)

  • Data โ€œtaggedโ€ with propagation history
  • Interprocedural flow explicit

๏‚ก Existence of MFPCS

  • No functional compositions
  • Only iteratively computable if ฮ“ finite

12.06.2010 Nikolai Knopp 54

slide-54
SLIDE 54

Struct cture

  • 1. Definition of a new DF problem (๐‘€โˆ—, ๐บโˆ—)

2.

  • 2. Proof: Solut

ution n to ๐‘ดโˆ—, ๐‘ฎโˆ— โ‰ก MOP solution

  • 3. Feasibility and precise variants
  • 4. Approximative solution

12.06.2010 Nikolai Knopp 55

slide-55
SLIDE 55

MOP P solution

  • n and MFPCS

CS

๏‚ก This chapter: Show that MOP solution

๐‘ง๐‘œ = ๐‘”

๐‘Ÿ: ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ

โŠค can be acquired from MFPCS.

๏‚ก Chapter outline:

  • 1. Define MOPCS
  • 2. Show MOPCS = MFPCS
  • 3. Extract results ๐‘ฆ๐‘œ

โ€ฒ โˆˆ ๐‘€ from MFPCS

  • 4. Using MOPCS and MFPCS, show ๐‘ฆ๐‘œ

โ€ฒ = MOP

12.06.2010 Nikolai Knopp 56

slide-56
SLIDE 56

MOP P solution

  • n for call strings

s (MOPCS

CS)

๏‚ก Propagation of data along paths in ๐ปโˆ—

For ๐‘Ÿ = ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘ก1, โ€ฆ ,๐‘ก๐‘™,๐‘œ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ—:

๐‘”

๐‘Ÿ โˆ— โ‰” ๐‘” ๐‘ก๐‘™,๐‘œ โˆ—

โˆ˜ ๐‘” ๐‘ก๐‘™โˆ’1,๐‘ก๐‘™

โˆ—

โˆ˜ โ‹ฏโˆ˜ ๐‘” ๐‘ก1,๐‘ก2

โˆ—

โˆ˜ ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1) โˆ—

๏‚ก Call string MOP solution (MOPCS

CS)

โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ง๐‘œ

โˆ— โ‰” โ‹€ ๐‘” ๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

โˆถ ๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ

12.06.2010 Nikolai Knopp 57

๐‘›๐‘๐‘—๐‘œ

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘”

๐‘Ÿ1 โˆ—

๐‘”

๐‘Ÿ2 โˆ— โ€ฆ

slide-57
SLIDE 57

MOP P solution

  • n for call strings

s (MOPCS

CS)

๏‚ก Propagation of data along paths in ๐ปโˆ—

For ๐‘Ÿ = ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘ก1, โ€ฆ ,๐‘ก๐‘™,๐‘œ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ—:

๐‘”

๐‘Ÿ โˆ— โ‰” ๐‘” ๐‘ก๐‘™,๐‘œ โˆ—

โˆ˜ ๐‘” ๐‘ก๐‘™โˆ’1,๐‘ก๐‘™

โˆ—

โˆ˜ โ‹ฏโˆ˜ ๐‘” ๐‘ก1,๐‘ก2

โˆ—

โˆ˜ ๐‘”

(๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1) โˆ—

๏‚ก Call string MOP solution (MOPCS

CS)

โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ง๐‘œ

โˆ— โ‰” โ‹€ ๐‘” ๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

โˆถ ๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ

12.06.2010 Nikolai Knopp 58

๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— โЇ ๐ฝ๐‘Š๐‘„ ๐‘›๐‘๐‘—๐‘œ

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘”

๐‘Ÿ1 โˆ—

๐‘”

๐‘Ÿ2 โˆ— โ€ฆ

?

slide-58
SLIDE 58

Validโ€“pat ath-only prop

  • pag

agat ation

  • n

Lemma: : Let ๐‘œ โˆˆ ๐‘‚โˆ—,๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ , ๐›ฟ โˆˆ ฮ“. Then

1.

๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ and ๐ท๐‘ ๐‘Ÿ = ฮณ

โ‡” ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ defined

2.

๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ = ๐‘”

๐‘Ÿ โŠค

โ‡’ โ€œMOPCS only contains paths in ๐ฝ๐‘Š๐‘„ and for each such ๐‘ž yields the same result as ๐‘€, ๐บ โ€

12.06.2010 Nikolai Knopp 59

slide-59
SLIDE 59

Validโ€“pat ath-only prop

  • pag

agat ation

  • n (Proo
  • of)

By induc uction on ๐‘š ๐‘Ÿ for ๐‘Ÿ = (๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘ก1,โ€ฆ ,๐‘ก๐‘™, ๐‘œ):

๏‚ก ๐’Ž ๐’“ = ๐Ÿ: Let ๐‘œ โˆˆ ๐‘‚โˆ—.

๐‘Ÿ = ๐‘ 

๐‘›๐‘๐‘—๐‘œ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘  ๐‘›๐‘๐‘—๐‘œ,๐‘  ๐‘›๐‘๐‘—๐‘œ โ‡’ ๐ท๐‘ ๐‘Ÿ = ๐œ‡.

๐‘”

๐‘Ÿ โˆ— ๐‘  ๐‘›๐‘๐‘—๐‘œ =

๐œ‡, โŠค

  • nly def. for ๐œ‡ with โŠค = ๐‘”

๐‘Ÿ โŠค .

12.06.2010 Nikolai Knopp 60

๏‚ก IH:

Iff ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ < ๐‘™ and ๐›ฟ = ๐ท๐‘ ๐‘Ÿ

then ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐œ‡ = ๐‘”

๐‘ž โŠค .

slide-60
SLIDE 60

Validโ€“pat ath-only prop

  • pag

agat ation

  • n (Proo
  • of)

๏‚ก IH:

Iff ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ < ๐‘™ and ๐›ฟ = ๐ท๐‘ ๐‘Ÿ

then ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐œ‡ = ๐‘”

๐‘ž โŠค

๏‚ก IS: ๐‘š ๐‘Ÿ = ๐‘™.

12.06.2010 Nikolai Knopp 61

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก๐‘™โˆ’1 ๐‘ก๐‘™ ...

๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ ๐‘Ÿ โ‰ ๐‘” ๐‘ก๐‘™,๐‘œ ๐‘ฆ๐‘ก๐‘™

โˆ—

slide-61
SLIDE 61

Validโ€“pat ath-only prop

  • pag

agat ation

  • n (Proo
  • of)

๏‚ก IH:

Iff ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ < ๐‘™ and ๐›ฟ = ๐ท๐‘ ๐‘Ÿ

then ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐œ‡ = ๐‘”

๐‘ž โŠค

๏‚ก IS: ๐‘š ๐‘Ÿ = ๐‘™.

12.06.2010 Nikolai Knopp 62

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก๐‘™โˆ’1 ๐‘ก๐‘™ ...

๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ ๐‘”

๐‘Ÿโ€ฒ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟโ€ฒ ๐‘Ÿโ€ฒ ๐‘Ÿ ๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›, ๐‘œ , ๐›ฟโ€ฒ = ๐ท๐‘ ๐‘Ÿโ€ฒ โ‰ ๐‘” ๐‘ก๐‘™,๐‘œ ๐‘ฆ๐‘ก๐‘™

โˆ—

slide-62
SLIDE 62

Validโ€“pat ath-only prop

  • pag

agat ation

  • n (Proo
  • of)

๏‚ก IH:

Iff ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ < ๐‘™ and ๐›ฟ = ๐ท๐‘ ๐‘Ÿ

then ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐œ‡ = ๐‘”

๐‘ž โŠค

๏‚ก IS: ๐‘š ๐‘Ÿ = ๐‘™.

12.06.2010 Nikolai Knopp 63

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก๐‘™โˆ’1 ๐‘ก๐‘™ ...

๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ ๐‘”

๐‘Ÿโ€ฒ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟโ€ฒ ๐‘Ÿโ€ฒ ๐‘Ÿ =๐‘ฑ๐‘ฐ ๐‘”๐‘Ÿโ€ฒ โŠค ๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›, ๐‘œ , ๐›ฟโ€ฒ = ๐ท๐‘ ๐‘Ÿโ€ฒ โ‰ ๐‘” ๐‘ก๐‘™,๐‘œ ๐‘ฆ๐‘ก๐‘™

โˆ—

slide-63
SLIDE 63

Validโ€“pat ath-only prop

  • pag

agat ation

  • n (Proo
  • of)

๏‚ก IH:

Iff ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ < ๐‘™ and ๐›ฟ = ๐ท๐‘ ๐‘Ÿ

then ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐œ‡ = ๐‘”

๐‘ž โŠค

๏‚ก IS: ๐‘š ๐‘Ÿ = ๐‘™.

12.06.2010 Nikolai Knopp 64

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก๐‘™โˆ’1 ๐‘ก๐‘™ ...

๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ ๐‘”

๐‘Ÿโ€ฒ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟโ€ฒ = ๐‘” ๐‘ก๐‘™,๐‘œ ๐‘”๐‘Ÿโ€ฒ โŠค โ‰ ๐‘”

๐‘Ÿ โŠค

๐‘Ÿโ€ฒ ๐‘Ÿ =๐‘ฑ๐‘ฐ ๐‘”๐‘Ÿโ€ฒ โŠค

โˆŽ

๐›ฟ = ๐›ฟโ€ฒ โˆ˜ ๐‘›, ๐‘œ , ๐›ฟโ€ฒ = ๐ท๐‘ ๐‘Ÿโ€ฒ

slide-64
SLIDE 64

MFPCS = MOPCS

CS:

: ๐‘ฆ๐‘œ

โˆ— = ๐‘ง๐‘œ โˆ—

Theorem: (๐‘€, ๐บ) distributive โ‡’ โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โˆ— = ๐‘ง๐‘œ โˆ—

Proof:

๏‚ก ๐’š๐’

โˆ— โ‰ค ๐’›๐’ โˆ— : Let ๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— = ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1, โ€ฆ , ๐‘ก๐‘™, ๐‘œ .

12.06.2010 Nikolai Knopp 65

:๐‘Ÿ

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก1 ๐‘ก2 ๐‘ข

๐‘ฆ๐‘ก1

โˆ— โ‰ค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1 โˆ—

๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ—

๐‘ฆ๐‘ก2

โˆ— โ‰ค ๐‘” ๐‘ก1,๐‘ก2 โˆ—

๐‘ฆ๐‘ก1

โˆ—

๐‘ฆ๐‘œ

โˆ— โ‰ค ๐‘” ๐‘ก๐‘™,๐‘œ โˆ—

๐‘ฆ๐‘ก๐‘™

โˆ—

...

slide-65
SLIDE 65

MFPCS = MOPCS

CS:

: ๐‘ฆ๐‘œ

โˆ— = ๐‘ง๐‘œ โˆ—

Theorem: (๐‘€, ๐บ) distributive โ‡’ โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โˆ— = ๐‘ง๐‘œ โˆ—

Proof:

๏‚ก ๐’š๐’

โˆ— โ‰ค ๐’›๐’ โˆ— : Let ๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— = ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1, โ€ฆ , ๐‘ก๐‘™, ๐‘œ .

12.06.2010 Nikolai Knopp 66

:๐‘Ÿ

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘œ ๐‘ก1 ๐‘ก2 ๐‘ข

๐‘ฆ๐‘ก1

โˆ— โ‰ค ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘ก1 โˆ—

๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ—

๐‘ฆ๐‘ก2

โˆ— โ‰ค ๐‘” ๐‘ก1,๐‘ก2 โˆ—

๐‘ฆ๐‘ก1

โˆ—

๐‘ฆ๐‘œ

โˆ— โ‰ค ๐‘” ๐‘ก๐‘™,๐‘œ โˆ—

๐‘ฆ๐‘ก๐‘™

โˆ—

...

By monotonicity โ‡’ ๐‘ฆ๐‘œ

โˆ— โ‰ค ๐‘” ๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐‘๐‘ƒ๐‘„๐ท๐‘‡ = โ‹€ ๐‘”

๐‘Ÿ โˆ— ๐‘Ÿ

โ‡’ ๐‘ฆ๐‘œ

โˆ— โ‰ค โ‹€ ๐‘” ๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ— ๐‘Ÿ

slide-66
SLIDE 66

MFPCS = MOPCS

CS:

: ๐‘ฆ๐‘œ

โˆ— = ๐‘ง๐‘œ โˆ—

๏‚ก ๐’š๐’

โˆ— โ‰ฅ ๐’›๐’ โˆ—:

By induction on ๐‘—: โˆ€๐‘— โ‰ฅ 0, ๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โˆ— ๐‘— โ‰ฅ ๐‘ง๐‘œ โˆ—

  • ๐’‹ = ๐Ÿ:

๐‘œ = ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆถ ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ—(0)

โ‰ ๐œ‡, โŠค = ๐‘”

๐‘Ÿ0 โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

โ‰ฅ ๐‘ง๐‘ ๐‘›๐‘๐‘—๐‘œ

โˆ—

๐‘œ โ‰  ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆถ ๐‘ฆ๐‘œ

โˆ— 0 โ‰ โŠฅโˆ— โ‰ฅ ๐‘ง๐‘œ โˆ—

  • IH:

โˆ€๐‘— โ‰ค ๐‘™, ๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โˆ— ๐‘— โ‰ฅ ๐‘ง ๐‘œ โˆ—

  • IS:

๐‘ฆ๐‘œ

โˆ— ๐‘™+1 โ‰

๐‘” ๐‘›,๐‘œ

โˆ—

๐‘ฆ๐‘›

โˆ— ๐‘™ ๐‘›,๐‘œ โˆˆ๐นโˆ—

IH โ‰ฅ ๐‘” ๐‘›,๐‘œ

โˆ—

๐‘ง๐‘›

โˆ— ๐‘›,๐‘œ โˆˆ๐นโˆ—

โ‰ฅ ๐‘ง๐‘œ

โˆ—

12.06.2010 Nikolai Knopp 67

โˆŽ Cont.+Dist.

  • f ๐‘” ๐‘›,๐‘œ

โˆ—

slide-67
SLIDE 67

Resu sult for ๐‘€, ๐บ from

  • m MFPCS

CS

Define ๐‘ฆ๐‘œ

โ€ฒ โˆˆ ๐‘€ as follows:

๐‘ฆ๐‘œ

โ€ฒ โ‰” ๐‘ฆ๐‘œ โˆ— ๐›ฟ ๐›ฟโˆˆฮ“

Claim: ๐‘ฆ๐‘œ

โ€ฒ is the MOP solution in (๐‘€, ๐บ)

12.06.2010 Nikolai Knopp 68

๐‘‘1 ,1 , ๐‘‘1๐‘‘2 , โŠค , ๐‘‘1๐‘‘2๐‘‘2 ,โŠค , โ€ฆ

a := a - 1

= ๐‘ฆ๐‘œ

โˆ— ๐‘ฆ๐‘œ

โ€ฒ = ๐‘ฆ๐‘œ โˆ— ๐œ‡ โˆง ๐‘ฆ๐‘œ โˆ—

๐‘‘1 โˆง ๐‘ฆ๐‘œ

โˆ—

๐‘‘1๐‘‘2 โˆง โ‹ฏ = โŠฅ โˆง 1 โˆง โŠค โˆง โ‹ฏ = 1 โˆง โŠค โˆง โ‹ฏ = โŠค

๐‘œ

slide-68
SLIDE 68

MFPCS

CS โ‰ก MOP

Theorem: For each ๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โ€ฒ = ๐‘ง๐‘œ

Proof:

๐‘ฆ๐‘œ

โ€ฒ

12.06.2010 Nikolai Knopp 69

= ๐‘ฆ๐‘œ

โˆ—(๐›ฟ) ๐›ฟโˆˆฮ“

= ๐‘”

๐‘Ÿ โˆ— ๐‘ฆ๐‘ ๐‘›๐‘๐‘—๐‘œ โˆ—

๐›ฟ |๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ—(๐‘ 

๐‘›๐‘๐‘—๐‘œ,๐‘œ) ๐›ฟโˆˆฮ“

= ๐‘”

๐‘Ÿ โŠค |๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘  ๐‘›๐‘๐‘—๐‘œ, ๐‘œ sth. ๐ท๐‘ ๐‘Ÿ = ๐›ฟ ๐›ฟโˆˆฮ“

= ๐‘”

๐‘Ÿ โŠค |๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘  ๐‘›๐‘๐‘—๐‘œ, ๐‘œ

= ๐‘ง๐‘œ

โˆŽ

Def ๐‘ฆ๐‘œ

โ€ฒ

MFPCS= MOPCS

Only-valid-path

  • propag. Lemma

๐ท๐‘โˆ’1 ฮ“ โˆฉ ๐ฝ๐‘Š๐‘„ = ๐ฝ๐‘Š๐‘„

slide-69
SLIDE 69

Chap apter summ mmar ary

๏‚ก Shown:

  • Get MOP solution from MFPCS
  • Conversion ๐‘ฆ๐‘œ

โˆ— โ†’ ๐‘ฆ๐‘œ โ€ฒ straightforward and without

functional composition

โ‡’ Call string approach is actually useful

๏‚ก But: Computing MFPCS still problematic

12.06.2010 Nikolai Knopp 70

slide-70
SLIDE 70

Struct cture

  • 1. Definition of a new DF problem (๐‘€โˆ—, ๐บโˆ—)
  • 2. Proof: Solution to ๐‘€โˆ—,๐บโˆ— โ‰ก MOP solution

3.

  • 3. Feasibility and preci

cise variant nts

  • 4. Approximative solution

12.06.2010 Nikolai Knopp 71

slide-71
SLIDE 71

Motivat ation

๏‚ก Observation: ๐‘€ finite โ‡’ functional approach

converges, CS approach not necessarily

๏‚ก Idea: Ensure termination of CS approach by

limiting to finite CS subset ฮ“0 โІ ฮ“

๏‚ก Show: Can be done for all (๐‘€, ๐บ) with finite ๐‘€

without losing precision

12.06.2010 Nikolai Knopp 72

slide-72
SLIDE 72

Redefinitions

  • ns using ฮ“

๐‘

๏‚ก ฮ“0 is finite subset of ฮ“ fulfilling:

If ๐›ฟ โˆˆ ฮ“0 and ๐›ฟโ€ฒ initial subtuple of ๐›ฟ โ‡’ ๐›ฟโ€ฒ โˆˆ ฮ“0

๏‚ก ๐ฝ๐‘Š๐‘„โ€ฒ โ‰” ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ | โˆ€ prefix ๐‘Ÿโ€ฒof ๐‘Ÿ: ๐ท๐‘ ๐‘Ÿโ€ฒ โˆˆ ฮ“0 ๏‚ก Let โˆ˜0 only act in ฮ“0

  • discards ๐›ฟโ€ฒ entirely iff ๐›ฟโ€ฒ โˆ˜0 ๐‘›,๐‘œ โˆ‰ ฮ“0
  • โˆ˜0 is consistent with ๐ฝ๐‘Š๐‘„โ€ฒ

12.06.2010 Nikolai Knopp 73

slide-73
SLIDE 73

Definitions:

  • ns: DF anal

alysis s with ฮ“

Now consider ๐‘€0

โˆ— ,๐บ0 โˆ— with ๐‘€0 โˆ— โ‰” ฮ“0 โ†’ ๐‘€ finite

  • Dataflow equations now iteratively solvable

๐‘ฆ๐‘œ

โ€ฒ 0 โ‰” ๐‘ฆ๐‘œ โˆ— ๐›ฟ ๐›ฟโˆˆฮ“0

  • MOP solution using only paths in ๐ฝ๐‘Š๐‘„โ€ฒ

๐‘ง๐‘œ

โ€ฒ 0 โ‰” ๐‘” ๐‘Ÿ 0 | ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ ๐‘  ๐‘›๐‘๐‘—๐‘œ, ๐‘œ

12.06.2010 Nikolai Knopp 74

(MFPCS0) (MOPCS0)

slide-74
SLIDE 74

MOPCS0 = MFPCS0

Theorem: โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โ€ฒ 0 = ๐‘ง๐‘œ โ€ฒ

Proof:

  • Completely analogous to MOPCS=MFPCS proof by

replacing ฮ“, ๐ฝ๐‘Š๐‘„,โˆ˜ by ฮ“0, ๐ฝ๐‘Š๐‘„โ€ฒ,โˆ˜0

  • No reasoning about infinite meets or continuity
  • f ๐บ0

โˆ— required

12.06.2010 Nikolai Knopp 75

โˆŽ

slide-75
SLIDE 75

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

12.06.2010 Nikolai Knopp 76

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

slide-76
SLIDE 76

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

12.06.2010 Nikolai Knopp 77

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

slide-77
SLIDE 77

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

12.06.2010 Nikolai Knopp 78

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

slide-78
SLIDE 78

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

12.06.2010 Nikolai Knopp 79

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค

slide-79
SLIDE 79

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

12.06.2010 Nikolai Knopp 80

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค , ๐‘‘1๐‘‘2๐‘‘2๐‘‘2 ,โŠค

slide-80
SLIDE 80

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

๏‚ก No information gain on further iteration ๏‚ก Stop if data tagged by longer CS โ€žirrelevantโ€œ

12.06.2010 Nikolai Knopp 81

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช,1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 ,โŠค , ๐‘‘1๐‘‘2๐‘‘2 , โŠค , ๐‘‘1๐‘‘2๐‘‘2๐‘‘2 ,โŠค

slide-81
SLIDE 81

๐‘” ๐‘‘2,๐‘ ๐‘ž

โˆ—

๐‘” ๐‘‘1,๐‘ ๐‘ž

โˆ—

Motivat ation: CS of limi mited length

๏‚ก No information gain on further iteration ๏‚ก Stop if data tagged by longer CS โ€žirrelevantโ€œ

12.06.2010 Nikolai Knopp 82

if a=0

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p a := a - 1

T F

p

call p

main

๐‘ 

๐‘ž

read a, b t := a * b

๐‘‘2

๐œ‡, โŠค ๐œ‡, 1 ๐‘” ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘‘1

โˆ—

๐‘” ๐‘ ๐‘ž,๐‘œ2

โˆ—

๐‘œ2

๐‘” ๐‘œ2,๐‘‘2

โˆ—

โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค โŒฉ๐‘‘1โŒช, 1 , ๐‘‘1๐‘‘2 , โŠค

slide-82
SLIDE 82

Redundan ant inform

  • rmat

ation

  • n in anal

alysis

๏‚ก Why paths of arbitrary length?

  • ๐ฟ โ‰” number of call sites in program โˆˆ โ„•

โ‡’ only possible by recurring on call site(s)

  • At each call, analysis arrives with value ๐‘ฆ โˆˆ ๐‘€ and

returns with value ๐‘ง โˆˆ ๐‘€. ๐‘€ is finite โ‡’ ๐‘€ 2 many distinct begin/end value combinations per call

๏‚ก Idea: Recurring on any of the ๐ฟ calls more

than ๐‘€ 2 times is redundant.

12.06.2010 Nikolai Knopp 83

slide-83
SLIDE 83

Lemm mma: a: Path short

  • rtening

Let

๏‚ก (๐‘€, ๐บ) with ๐‘€ finite ๏‚ก ๐‘ โ‰” ๐ฟ โˆ— ๐‘€ 2

  • ๐ฟ โ‰” # call blocks in ๐ปโˆ—

๏‚ก ฮ“0 = ฮ“๐‘.

Then โˆ€ ๐‘œ โˆˆ ๐‘‚โˆ—: If ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ then exists ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ(๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ) with ๐‘”

๐‘Ÿ 0 = ๐‘”๐‘Ÿโ€ฒ 0 .

12.06.2010 Nikolai Knopp

๐‘ž1 ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž2

๐‘‘1 call ๐‘ž1

return

๐‘œ1 ๐‘“๐‘ž2 ๐‘œ2

84

slide-84
SLIDE 84

Lemm mma: a: Path short

  • rtening

Let

๏‚ก (๐‘€, ๐บ) with ๐‘€ finite ๏‚ก ๐‘ โ‰” ๐ฟ โˆ— ๐‘€ 2

  • ๐ฟ โ‰” # call blocks in ๐ปโˆ—

๏‚ก ฮ“0 = ฮ“๐‘.

Then โˆ€ ๐‘œ โˆˆ ๐‘‚โˆ—: If ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ then exists ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ(๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ) with ๐‘”

๐‘Ÿ 0 = ๐‘”๐‘Ÿโ€ฒ 0 .

12.06.2010 Nikolai Knopp

๐‘ž1 ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž2

๐‘‘1 call ๐‘ž1

return

๐‘œ1 ๐‘“๐‘ž2 ๐‘œ2

85

๐‘Ÿ

slide-85
SLIDE 85

Lemm mma: a: Path short

  • rtening

Let

๏‚ก (๐‘€, ๐บ) with ๐‘€ finite ๏‚ก ๐‘ โ‰” ๐ฟ โˆ— ๐‘€ 2

  • ๐ฟ โ‰” # call blocks in ๐ปโˆ—

๏‚ก ฮ“0 = ฮ“๐‘.

Then โˆ€ ๐‘œ โˆˆ ๐‘‚โˆ—: If ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ then exists ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ(๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ) with ๐‘”

๐‘Ÿ 0 = ๐‘”๐‘Ÿโ€ฒ 0 .

12.06.2010 Nikolai Knopp

๐‘ž1 ๐‘›๐‘๐‘—๐‘œ

๐‘‘2

call ๐‘ž1

๐‘ 

๐‘ž2

๐‘‘1 call ๐‘ž1

return

๐‘œ1 ๐‘“๐‘ž2 ๐‘œ2

86

๐‘Ÿโ€ฒ

slide-86
SLIDE 86

Lemm mma: a: Path short

  • rtening (proo
  • of)

๏‚ก Proof: By induction on ๐‘š(๐‘Ÿ) โ‰” length of ๐‘Ÿ.

  • ๐’Ž ๐’“ = ๐Ÿ: ๐œ‡ โˆˆ ฮ“ and ๐œ‡ โˆˆ ฮ“0.
  • IH: Lemma holds for all paths with ๐‘š ๐‘Ÿ < ๐‘™, ๐‘™ โˆˆ โ„•+.
  • IS: Let ๐‘œ โˆˆ ๐‘‚โˆ—, ๐‘Ÿ โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ , ๐‘š ๐‘Ÿ = ๐‘™.

Assume ๐‘Ÿ โˆ‰ ๐ฝ๐‘Š๐‘„โ€ฒ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ .

Let ๐‘Ÿโ€ฒ the shortest prefix with ๐‘Ÿโ€ฒ โˆ‰ ๐ฝ๐‘Š๐‘„โ€ฒ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ .

Then ๐‘Ÿโ€ฒ contains ๐‘ + 1 unreturned calls.

By decomposition Lemma:

12.06.2010 Nikolai Knopp 87

๐‘Ÿโ€ฒ = ๐‘Ÿ0|| ๐‘‘1, ๐‘ 

๐‘ž1 ||๐‘Ÿ1|| ๐‘‘2, ๐‘  ๐‘ž2 || โ€ฆ || ๐‘‘๐‘+1, ๐‘  ๐‘ž๐‘+1 ||๐‘Ÿ๐‘+1

slide-87
SLIDE 87

Lemm mma: a: Path short

  • rtening (proo
  • of)

๏‚ก ๐‘ + 1 calls, but max. ๐‘ distinct elements. Let ๐‘‘ , ๐‘ ๐‘ž

a duplicate call. If ๐‘‘ returns, let ๐‘“๐‘ž

, ๐‘œ the return

edge.

๏‚ก Rewrite ๐‘Ÿ as

๐‘Ÿ0

โ€ฒ || ๐‘‘ , ๐‘ ๐‘ž || ๐‘Ÿ1 โ€ฒ || ๐‘‘ , ๐‘ ๐‘ž || ๐‘Ÿ2 โ€ฒ || ๐‘“๐‘ž , ๐‘œ || ๐‘Ÿ3 โ€ฒ || ๐‘“๐‘ž ,๐‘œ || ๐‘Ÿ4 โ€ฒ

๏‚ก Shorter ๐‘Ÿ

โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ with ๐‘” ๐‘Ÿ = ๐‘” ๐‘Ÿ by dropping

redundant parts

๏‚ก By IH

IH, โˆƒ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ ๐‘ 

๐‘›๐‘๐‘—๐‘œ,๐‘œ for ๐‘Ÿ

with ๐‘”๐‘Ÿโ€ฒ = ๐‘”

๐‘Ÿ and thus

๐‘”๐‘Ÿโ€ฒ = ๐‘”

๐‘Ÿ.

12.06.2010 Nikolai Knopp 88

๐‘Ÿโ€ฒ = ๐‘Ÿ0|| ๐‘‘1, ๐‘ 

๐‘ž1 ||๐‘Ÿ1|| ๐‘‘2, ๐‘  ๐‘ž2 || โ€ฆ || ๐‘‘๐‘+1, ๐‘  ๐‘ž๐‘+1 ||๐‘Ÿ๐‘+1

โˆŽ

slide-88
SLIDE 88

Lemm mma: a: Path short

  • rtening (proo
  • of)

๏‚ก ๐‘ + 1 calls, but max. ๐‘ distinct elements. Let ๐‘‘ , ๐‘ ๐‘ž

a duplicate call. If ๐‘‘ returns, let ๐‘“๐‘ž

, ๐‘œ the return

edge.

๏‚ก Rewrite ๐‘Ÿ as

๐‘Ÿ0

โ€ฒ || ๐‘‘ , ๐‘ ๐‘ž || ๐‘Ÿ1 โ€ฒ || ๐‘‘ , ๐‘ ๐‘ž || ๐‘Ÿ2 โ€ฒ || ๐‘“๐‘ž , ๐‘œ || ๐‘Ÿ3 โ€ฒ || ๐‘“๐‘ž ,๐‘œ || ๐‘Ÿ4 โ€ฒ

๏‚ก Shorter ๐‘Ÿ

โˆˆ ๐ฝ๐‘Š๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ with ๐‘” ๐‘Ÿ = ๐‘” ๐‘Ÿ by dropping

redundant parts

๏‚ก By IH

IH, โˆƒ๐‘Ÿโ€ฒ โˆˆ ๐ฝ๐‘Š๐‘„โ€ฒ ๐‘ 

๐‘›๐‘๐‘—๐‘œ,๐‘œ for ๐‘Ÿ

with ๐‘”๐‘Ÿโ€ฒ = ๐‘”

๐‘Ÿ and thus

๐‘”๐‘Ÿโ€ฒ = ๐‘”

๐‘Ÿ.

12.06.2010 Nikolai Knopp 89

๐‘Ÿโ€ฒ = ๐‘Ÿ0|| ๐‘‘1, ๐‘ 

๐‘ž1 ||๐‘Ÿ1|| ๐‘‘2, ๐‘  ๐‘ž2 || โ€ฆ || ๐‘‘๐‘+1, ๐‘  ๐‘ž๐‘+1 ||๐‘Ÿ๐‘+1

โˆŽ

slide-89
SLIDE 89

MOPCS0=MOP

๏‚ก For ๐‘ โˆˆ โ„• โ‰ฅ 0, define ฮ“๐‘ as set of all ๐›ฟ โˆˆ ฮ“ with

length โ‰ค ๐‘.

๏‚ก Theorem:

Let ๐‘€, ๐บ a distributive DF framework with ๐‘€ finite, and ฮ“0 = ฮ“๐‘ with ๐‘ = ๐ฟ โˆ— ๐‘€ 2. Then โˆ€๐‘œ โˆˆ ๐‘‚โˆ—: ๐‘ฆ๐‘œ

โ€ฒ 0 = ๐‘ง๐‘œ

โ‡’ โ€œIf ๐›ฟ is too long and gets discarded, a shorter one in the set represents the same data.โ€

12.06.2010 Nikolai Knopp 90

slide-90
SLIDE 90

Better bounds s for ๐‘

๏‚ก ๐‘ impractically large for most problems ๏‚ก Lower bounds exists for certain problem

classes. Example: Decomposable frameworks

12.06.2010 Nikolai Knopp 91

slide-91
SLIDE 91

Decom

  • mposab

sable fram amework

  • rks

๐‘€ = , ๐‘ข , ๐‘ฃ , ๐‘ข, ๐‘ฃ , โŠฅ ๐‘ = 50

12.06.2010 Nikolai Knopp 92

if โ€ฆ return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p b := b + 1 t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a,b t := a * b u := 2 * b t := a * b u := 2 * b print t,u

๐‘‘2 a*b,2*b avail.?

slide-92
SLIDE 92

Decom

  • mposab

sable fram amework

  • rks

๐‘€ = , ๐‘ข , ๐‘ฃ , ๐‘ข, ๐‘ฃ , โŠฅ ๐‘ = 50

12.06.2010 Nikolai Knopp 93

if โ€ฆ return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p b := b + 1 t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a,b t := a * b u := 2 * b t := a * b u := 2 * b print t,u

๐‘‘2

+๐‘ข + ๐‘ฃ ๐‘—๐‘’ โˆ’๐‘ข ๐‘—๐‘’ +๐‘ข โˆ’ ๐‘ฃ

a*b,2*b avail.?

slide-93
SLIDE 93

Decom

  • mposab

sable fram amework

  • rks

๐‘€ = , ๐‘ข , ๐‘ฃ , ๐‘ข, ๐‘ฃ , โŠฅ ๐‘ = 50

12.06.2010 Nikolai Knopp 94

if โ€ฆ return

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

call p b := b + 1 t := a * b a := a - 1

T F

p

call p stop

main

๐‘“๐‘›๐‘๐‘—๐‘œ ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž

read a,b t := a * b u := 2 * b t := a * b u := 2 * b print t,u

๐‘‘2

+๐‘ข + ๐‘ฃ ๐‘—๐‘’ โˆ’๐‘ข ๐‘—๐‘’ +๐‘ข โˆ’ ๐‘ฃ ๐‘ฃ ๐‘ฃ ๐‘ข, ๐‘ฃ ๐‘ฃ ๐‘ข

a*b,2*b avail.?

slide-94
SLIDE 94

Decom

  • mposab

sable fram amework

  • rks

๐‘€๐‘ข = , ๐‘ข ,โŠฅ , ๐‘€๐‘ฃ = , ๐‘ฃ , โŠฅ , โ‡’ ๐‘€ = ๐‘€๐‘ข ร— ๐‘€๐‘ฃ ๐‘ = 18

12.06.2010 Nikolai Knopp 95

if โ€ฆ return call p b := b + 1 t := a * b a := a - 1

T F

call p stop read a,b t := a * b u := 2 * b t := a * b u := 2 * b print t,u

๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘‘1

p main

๐‘“๐‘›๐‘๐‘—๐‘œ ๐‘œ2 ๐‘ 

๐‘ž

๐‘“๐‘ž ๐‘‘2

+๐‘ข +๐‘ฃ ๐‘ข ๐‘ฃ ๐‘ฃ id ๐‘—๐‘’ ๐‘ฃ โˆ’๐‘ข ๐‘—๐‘’ ๐‘ฃ ๐‘—๐‘’ ๐‘—๐‘’ +๐‘ข โˆ’๐‘ฃ ๐‘ข

a*b,2*b avail.?

slide-95
SLIDE 95

Bound for decom compos

  • sab

able framew mework

  • rks

๏‚ก Theorem: Let ๐‘€, ๐บ decomposable into ๐‘™

frameworks ๐‘€๐‘—,๐บ๐‘— ๐‘—=1

๐‘™

. Setting the maximum callstring length to ๐‘ = ๐ฟ โˆ— max

๐‘—โˆˆ 1..๐‘™

๐‘€๐‘—

2

yields ๐‘ง๐‘œ

โ€ฒ 0 = ๐‘ง๐‘œ โˆ€๐‘œ โˆˆ ๐‘‚โˆ—.

12.06.2010 Nikolai Knopp 96

slide-96
SLIDE 96

1-relat ated fram amework

  • rks

๏‚ก Defini

nition: n: A decomposable DF framework (L,F) is 1-related if each ๐บ๐‘— only consists of constant and identity functions.

๏‚ก Theorem: In this case, using ฮ“0 = ฮ“3๐ฟ yields

๐‘ง๐‘œ

โ€ฒ 0 = ๐‘ง๐‘œ โˆ€๐‘œ โˆˆ ๐‘‚โˆ—.

๏‚ก Example: Available expressions is 1-related.

  • Decomp. into subproblems ๐‘€๐‘“,๐บ

๐‘“ for each

expression ๐‘“ with ๐‘€๐‘“ = โŠค, 1,โŠฅ , ๐บ

๐‘“ = ๐‘—๐‘’, ๐‘” โŠค, ๐‘” 1, ๐‘” โŠฅ

12.06.2010 Nikolai Knopp 97

slide-97
SLIDE 97

Chap apter summ mmar ary

๏‚ก If ๐‘€ finite, MFPCS iteratively computable on ฮ“0

  • Precision/safeness depending on choice for ฮ“0

๏‚ก Enforce termination by limiting max. CS

length

  • Precision preserving bounds exist, but only of

theoretical value

  • Better bounds exist for special problem classes

12.06.2010 Nikolai Knopp 98

slide-98
SLIDE 98

Struct cture

  • 1. Definition of a new DF problem (๐‘€โˆ—, ๐บโˆ—)
  • 2. Proof: Solution to ๐‘€โˆ—,๐บโˆ— โ‰ก MOP solution
  • 3. Feasibility and precise variants

4.

  • 4. Approximative solut

utions ns

12.06.2010 Nikolai Knopp 99

slide-99
SLIDE 99

Motivat ation

๏‚ก Prefer a safe approximative solution ๐‘ฆ

๐‘œ โ‰ค ๐‘ง๐‘œ

  • ver MFPCS if
  • MFPCS not (iteratively) computable
  • computation not feasible MFPCS by time/space

constraints

and computation of ๐‘ฆ ๐‘œ โ‰ค ๐‘ง๐‘œ feasible. โ‡’ Accept precision loss for less complexity.

12.06.2010 Nikolai Knopp 100

slide-100
SLIDE 100

Reduci cing comp mplexity of CS approa

  • ach

ch

12.06.2010 Nikolai Knopp 101

ฮ“ ฮ“

๐œ

slide-101
SLIDE 101

Embedding ฮ“ into

  • ฮ“

๏‚ก Let โˆ— an operation in ฮ“

with left identity ๐‘ฅ โˆˆ ฮ“ .

๏‚ก Encoding function ๐œ: ฮ“ โ†’ ฮ“

  • Define ๐œ ๐‘œ for each call node ๐‘œ in ๐ปโˆ—.
  • For ๐›ฟ = ๐‘‘1๐‘‘2 โ€ฆ ๐‘‘๐‘œ โˆˆ ฮ“:

๐œ ๐›ฟ = ๐œ ๐‘‘1 โˆ— โ‹ฏโˆ— ๐œ ๐‘‘๐‘œ and ๐œ ๐›ฟ = ๐‘ฅ.

12.06.2010 Nikolai Knopp 102

slide-102
SLIDE 102

Tran ansf sfer relat ation

  • n ๐‘† ๐‘›,๐‘œ

๏‚ก For each ๐‘›, ๐‘œ โˆˆ ๐นโˆ—, define transfer relation

๐‘† ๐‘›,๐‘œ โˆˆ ฮ“ ร— ฮ“ :

  • If ๐‘›,๐‘œ intraproc.:

โˆ€๐‘ โˆˆ ฮ“ : ๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

  • If ๐‘›,๐‘œ interproc.:

๐œ ๐›ฟโ€ฒ ๐‘† ๐‘›,๐‘œ ๐œ ๐›ฟ โ‡’ ๐‘†๐‘‘๐‘๐‘š๐‘š = ๐‘†๐‘ ๐‘“๐‘ข๐‘ฃ๐‘ ๐‘œ

โˆ’1

12.06.2010 Nikolai Knopp 103

๐‘› ๐‘œ ๐‘œโ€ฒ ๐‘›โ€ฒ ๐›ฟโ€ฒ ๐›ฟ ๐›ฟ ๐›ฟโ€ฒ ๐‘› ๐‘œ ๐›ฟโ€ฒ ๐›ฟโ€ฒ ๐œ ๐›ฟโ€ฒ = ๐‘

slide-103
SLIDE 103

Acceptab able paths

Let ๐‘Ÿ = ๐‘œ1, ๐‘œ2, โ€ฆ , ๐‘œ๐‘™ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ—.

๏‚ก Define ๐‘†๐‘Ÿ โ‰” ๐‘† ๐‘œ1,๐‘œ2 โˆ˜ ๐‘† ๐‘œ2,๐‘œ3 โˆ˜ โ‹ฏ โˆ˜ ๐‘† ๐‘œ๐‘™โˆ’1,๐‘œ๐‘™ ๏‚ก ๐‘Ÿ acceptable โˆถโ‡” ๐‘†๐‘Ÿ โ‰  โˆ… ๏‚ก Intraprocedurally acceptable paths:

๐ฝ๐ต๐‘„ ๐‘ ๐‘›๐‘๐‘—๐‘œ, ๐‘œ โ‰” ๐‘Ÿ โˆˆ ๐‘ž๐‘๐‘ขโ„Ž๐ปโˆ— ๐‘ ๐‘›๐‘๐‘—๐‘œ,๐‘œ |๐‘†๐‘Ÿ ๐‘ฅ โ‰  โˆ…

12.06.2010 Nikolai Knopp 104

slide-104
SLIDE 104

Inval alid pat aths s in ๐ฝ๐ต๐‘„

12.06.2010 Nikolai Knopp 105

๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ ๐ท๐‘ ๐‘Ÿโ€ฒ|| ๐‘›, ๐‘œ = ๐›ฟ

๐‘ ๐‘

๐œ ๐‘› ๐‘œ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘Ÿโ€ฒ

๐‘ฅ ๐‘†๐‘Ÿโ€ฒ ๐œ ๐›ฟ

slide-105
SLIDE 105

Inval alid pat aths s in ๐ฝ๐ต๐‘„

12.06.2010 Nikolai Knopp 106

๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ ๐ท๐‘ ๐‘Ÿโ€ฒ|| ๐‘›, ๐‘œ = ๐›ฟ

๐‘ ๐‘

๐œ ๐‘ฆ

๐‘Ÿ

๐‘› ๐‘œ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘Ÿโ€ฒ

๐‘ฅ ๐‘†๐‘Ÿโ€ฒ ๐œ ๐›ฟ

slide-106
SLIDE 106

Inval alid pat aths s in ๐ฝ๐ต๐‘„

12.06.2010 Nikolai Knopp 107

๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ ๐ท๐‘ ๐‘Ÿโ€ฒ|| ๐‘›, ๐‘œ = ๐›ฟ

๐‘ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿ = ๐›ฟ

๐œ ๐‘ฆ

๐‘Ÿ

๐‘› ๐‘œ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘Ÿโ€ฒ

๐‘ฅ ๐‘†๐‘Ÿโ€ฒ ๐œ ๐›ฟ

slide-107
SLIDE 107

Inval alid pat aths s in ๐ฝ๐ต๐‘„

12.06.2010 Nikolai Knopp 108

๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ ๐ท๐‘ ๐‘Ÿโ€ฒ|| ๐‘›, ๐‘œ = ๐›ฟ

๐‘ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿ = ๐›ฟ

๐œ ๐‘ฆ

๐‘Ÿ

๐‘› ๐‘œ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘Ÿโ€ฒ

๐‘ฅ ๐‘†๐‘Ÿโ€ฒ ๐œ ๐›ฟ ๐‘ฅ ๐‘†๐‘Ÿ

๐œ ๐›ฟ

slide-108
SLIDE 108

Inval alid pat aths s in ๐ฝ๐ต๐‘„

12.06.2010 Nikolai Knopp 109

๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿโ€ฒ = ๐›ฟโ€ฒ ๐ท๐‘ ๐‘Ÿโ€ฒ|| ๐‘›, ๐‘œ = ๐›ฟ

๐‘ ๐‘

๐œ

๐ท๐‘ ๐‘Ÿ = ๐›ฟ

๐œ ๐‘ฆ

๐‘Ÿ

๐‘› ๐‘œ ๐‘ 

๐‘›๐‘๐‘—๐‘œ

๐‘Ÿโ€ฒ

๐‘ฅ ๐‘†๐‘Ÿโ€ฒ ๐œ ๐›ฟ ๐‘ฅ ๐‘†๐‘Ÿ

๐œ ๐›ฟ

โ‡’ ๐ฝ๐ต๐‘„ ๐‘ 

๐‘›๐‘๐‘—๐‘œ, ๐‘œ โЇ ๐ฝ๐‘Š๐‘„ ๐‘  ๐‘›๐‘๐‘—๐‘œ, ๐‘œ

slide-109
SLIDE 109

Dataf aflow anal alysi sis s using ฮ“

Now define framework ๐‘€ , ๐บ

  • ๐‘€

โ‰” ฮ“ โ†’ ๐‘€

  • For edge ๐‘›,๐‘œ , data in ๐œŠ๐‘› is propagated to ๐œŠ๐‘œ

from all ๐‘ โˆˆ ฮ“ to ๐‘ โˆˆ ฮ“ for which ๐‘ ๐‘† ๐‘›,๐‘œ ๐‘: ๐‘” ๐‘›,๐‘œ

โˆ—

๐œŠ๐‘› ๐‘ โ‰” โ‹€ ๐‘” ๐‘›,๐‘œ ๐œŠ๐‘› ๐‘ |๐‘ ๐‘† ๐‘›,๐‘œ ๐‘

  • As before, define DF equations, the MFP solution

๐‘ฆ ๐‘œ

โˆ— ๐‘œโˆˆ๐‘‚โˆ— (which exists as ฮ“

finite), and the MOP solution ๐‘ง ๐‘œ using ๐ฝ๐ต๐‘„. โ‡’ Obviously ๐‘ง ๐‘œ โ‰ค ๐‘ง๐‘œ, so a safe approximation.

12.06.2010 Nikolai Knopp 110

slide-110
SLIDE 110

Dataf aflow anal alysi sis s using ฮ“ (cont

  • ntd.)

๏‚ก Without proof:

  • ๐‘€ distributive:

๐‘ฆ ๐‘œ = ๐‘ง ๐‘œ โ‰ค ๐‘ง๐‘œ

  • ๐‘€ only monotone:

๐‘ฆ ๐‘œ โ‰ค ๐‘ง ๐‘œ โ‰ค ๐‘ง๐‘œ

๏‚ก Examples:

12.06.2010 Nikolai Knopp 111

๏‚ก ฮ“

= ๐‘ฅ ๐œ: ๐›ฟ โ†ฆ ๐‘ฅ โˆ—: ๐‘ฅ, ๐‘ฅ โ†ฆ ๐‘ฅ โ‡’ intraproc. analysis

๏‚ก ฮ“

= โ„ค/๐‘™โ„ค, ๐‘™ โˆˆ โ„• โˆ€ call ๐‘‘๐‘— โˆˆ ๐‘‚โˆ—: ๐œ ๐‘‘๐‘— = ๐‘— ๐‘ โˆ— ๐‘ โ‰” ๐‘ + ๐‘ ๐‘›๐‘๐‘’ ๐‘™ โ‡’ only ๐‘™ call strings

slide-111
SLIDE 111

Summary

12.06.2010 Nikolai Knopp 112

slide-112
SLIDE 112

Summ mmar ary: CS Approach ach struct cture

๏‚ก CS approach makes interprocedural flow

explicit

  • Avoids functional composition of propagation

functions

  • Keeps track of origin of data by tagging with CS
  • Complexity of approach โ€œcontrolledโ€ by ฮ“

12.06.2010 Nikolai Knopp 113

slide-113
SLIDE 113

Summ mmar ary: Results s of CS approa

  • ach

ch (1/2)

Assume ๐‘€, ๐บ distributive.

๏‚ก ๐‘€ and ฮ“ finite:

MFPCS iteratively computable and yields MOP solution.

๏‚ก Only ๐‘€ finite:

Iterative calculation of MFPCS will converge

  • n MOP if ฮ“ replaced by ฮ“๐‘, else likely to

diverge

  • Depending on problem, better bounds exist.

12.06.2010 Nikolai Knopp 114

slide-114
SLIDE 114

Summ mmar ary: Results s of CS approa

  • ach

ch (2/2)

All other cases combinations of:

  • ๐‘€, ๐บ not distributive
  • ๐‘€ infinite
  • ๐บ not bounded

๏‚ก Convergence then only guaranteed if ฮ“

embedded into finite subset ฮ“

  • Also likely to be the only feasible approach to the
  • ther situations

๏‚ก Solution then is safe approximation of MOP

12.06.2010 Nikolai Knopp 115

slide-115
SLIDE 115

12.06.2010 Nikolai Knopp 116

Thanks!