New Algorithms for Static Analysis via Dyck Reachability

Size: px
Start display at page:

Download "New Algorithms for Static Analysis via Dyck Reachability"

Transcription

1 New Algorithms for Static Analysis via Dyck Reachability Andreas Pavlogiannis 4th Inria/EPFL Workshop February 15, 2018

2 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 2

3 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 2

4 Static Analysis Program analysis is hard All non-trivial problems undecidable Relax... A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 3

5 Static Analysis Program analysis is hard All non-trivial problems undecidable Relax your ambitions... your model A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 3

6 Static Analysis Program analysis is hard All non-trivial problems undecidable Relax your ambitions... your model Static analysis Lightweight, clever scans of the program Detect obvious bugs 1 Fast 2 On demand 3 Dynamic A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 3

7 Static Analysis via Dyck Reachability A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 4

8 Dyck Reachability Σ = {( 1, ) 1,... ( k, ) k } {ɛ} G = (V, E, λ : E Σ) S S S ( 1 S ) 1... ( k S ) k ɛ y ( 2 ) 2 ) 2 ) 1 z w ( 1 x A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 5

9 Dyck Reachability Σ = {( 1, ) 1,... ( k, ) k } {ɛ} G = (V, E, λ : E Σ) S S S ( 1 S ) 1... ( k S ) k ɛ y ) 2 ) 1 z P : x z with λ(p) = ( 1 ( 2 ) 2 ) 1 ( 2 ) 2 w ( 1 x A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 5

10 Dyck Reachability Σ = {( 1, ) 1,... ( k, ) k } {ɛ} G = (V, E, λ : E Σ) S S S ( 1 S ) 1... ( k S ) k ɛ y ) 2 ) 1 z P : x z with λ(p) = ( 1 ( 2 ) 2 ) 1 ( 2 ) 2 w ( 1 x Alias analysis Data-dependence analysis Data-flow analysis Shape analysis Impact analysis Bloat analysis Type-based flow analysis Program slicing A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 5

11 Algorithms Q: Is v Dyck-reachable from u? Dyck languages are a class of CFL Solution similar to CYK for CFL parsing O(n 3 ) [Yannakakis 90] O(n 3 / log n) [Chaudhuri 08] Often prohibitive for lightweight static analysis A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 6

12 Algorithms Q: Is v Dyck-reachable from u? Dyck languages are a class of CFL Solution similar to CYK for CFL parsing O(n 3 ) [Yannakakis 90] O(n 3 / log n) [Chaudhuri 08] Often prohibitive for lightweight static analysis 1 Low treewidth 2 Bidirected Can do better if the graph is simple! A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 6

13 Static Analysis Analyze source code without executing it Typical paradigm in static analysis: reduce the problem to a graph problem P: Input: A program of methods M i 1 Extract control flow graphs G i 2 Annotate G i 3 Run best graph algorithm for P on G A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 7

14 Static Analysis Analyze source code without executing it Typical paradigm in static analysis: reduce the problem to a graph problem P: Input: A program of methods M i 1 Extract control flow graphs G i 2 Annotate G i 3 Run best graph algorithm for P on G Data-dependence analysis Which variable depends on which others Identify Def-Use chains in a program LHS depends on RHS 1 x 2 2 y x A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 7

15 Static Analysis Analyze source code without executing it Typical paradigm in static analysis: reduce the problem to a graph problem P: Input: A program of methods M i 1 Extract control flow graphs G i 2 Annotate G i 3 Run best graph algorithm for P on G Data-dependence analysis Which variable depends on which others Identify Def-Use chains in a program LHS depends on RHS y depends on x if x y 1 x 2 2 y x A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 7

16 Intra-procedural Finite Graphs Method 1: dot vector 1 result 0 2 for i 1 to n do 3 z x[i] y[i] 4 result result + z 5 end 6 return result Method 2: dot matrix 1 C zero matrix of size n m 2 for i 1 to n do 3 for j 1 to m do 4 Call dot vector(a[i, :], B[:, j]) 5 C[i, j] the value returned by the call of line 4 6 end 7 end 8 return C A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 8

17 Inter-procedural Recursive Graphs Method 1: f 1 () a g() 3... Method 3: g() 1... Method 2: f 2 () b g() 3... f 1 g f 2 x y u v Filter out interprocedurally invalid paths A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 9

18 Inter-procedural Recursive Graphs Method 1: f 1 () a g() 3... Method 3: g() 1... Method 2: f 2 () b g() 3... f 1 g f 2 ( 1 ( 2 x u y ) 1 ) 2 v Filter out interprocedurally invalid paths A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 9

19 Inter-procedural Recursive Graphs Method 4: dot vector 1 result 0 2 for i 1 to n do 3 z x[i] y[i] 4 result result + z 5 end 6 return result ( 1 Method 5: dot matrix 1 C zero matrix of size n m 2 for i 1 to n do 3 for j 1 to m do 4 Call dot vector(a[i, :], B[:, j]) 5 C[i, j] the value returned by the call of line 4 6 end 7 end 8 return C ) 1 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 10

20 Control-flow graphs are simple Similar to trees Precise notion: treewidth A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 11

21 Treewidth A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 12

22 Cops and Robber A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 13

23 Cops and Robber You enter the metro and forget to buy a ticket t inspectors are looking for you in the metro stations Everyone is aware of everyone else s position A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 13

24 Cops and Robber You enter the metro and forget to buy a ticket t inspectors are looking for you in the metro stations Everyone is aware of everyone else s position In every round Some inspectors move between stations to reach you You use the metro system to move between stations You cannot cross an occupied station A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 13

25 Cops and Robber You enter the metro and forget to buy a ticket t inspectors are looking for you in the metro stations Everyone is aware of everyone else s position In every round Some inspectors move between stations to reach you You use the metro system to move between stations You cannot cross an occupied station The treewidth of the metro graph is the largest t from which you can always escape A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 13

26 Cops and Robber A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 13

27 Tree Decompositions Definition (Tree decomposition) Given a graph G = (V, E), a tree-decomposition Tree(G) = (V T, E T ) is a tree of bags B i V G Tree(G) 2, 8, , 9, 10 2, 3, , 8, 9 1, 8, , 7, 9 4 4, 6, 9 5, 6, 7 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 14

28 Treewidth Definition (Treewidth) The width of Tree(G) is max i B i 1. The treewidth of G is the minimum width of a tree decomposition of G. G Tree(G) 2, 8, , 9, 10 2, 3, , 8, 9 1, 8, , 7, 9 4 4, 6, 9 5, 6, 7 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 15

29 Treewidth Definition (Treewidth) The width of Tree(G) is max i B i 1. The treewidth of G is the minimum width of a tree decomposition of G. CFGs of typical imperative programs have small treewidth For goto-free programs [Thorup 98] Pascal 3 C 6 In practice small in imperative programs (e.g. Java 7) A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 15

30 Treewidth Definition (Treewidth) The width of Tree(G) is max i B i 1. The treewidth of G is the minimum width of a tree decomposition of G. CFGs of typical imperative programs have small treewidth For goto-free programs [Thorup 98] Pascal 3 C 6 In practice small in imperative programs (e.g. Java 7) Theorem (Tree decomposition) For constant treewidth graphs,tree(g) can be constructed in O(n) time A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 15

31 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

32 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

33 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

34 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

35 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

36 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

37 Algorithmic Principle G h 7 8 ( 2 ) 2 G g ( 1 ) 1 G f Reachability ignoring parenthesis edges 2 If Entry Exit Insert summary edge Most time spent in (1) Incremental reachability Low treewidth A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 16

38 Reachability on low-treewidth graphs A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 17

39 Reachability [ESA 16] Given a graph G = (V, E) of n nodes and bounded treewidth Preprocessing time Space Pair query time Single-source query time O(n) O(n) O(n) ( O n 2 log n ) ( O n 2 log n ) O(1) ( O n log n O(n log n) O(n log n) O(log n) O(n) ( ) O(n) O(n) O (1) O n log n ) Optimal Faster than DFS/BFS after a constant number of queries A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 18

40 Reachability [ESA 16] Given a graph G = (V, E) of n nodes and bounded treewidth Preprocessing time Space Pair query time Single-source query time O(n) O(n) O(n) ( O n 2 log n ) ( O n 2 log n ) O(1) ( O n log n O(n log n) O(n log n) O(log n) O(n) ( ) O(n) O(n) O (1) O n log n ) Optimal Faster than DFS/BFS after a constant number of queries A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 18

41 Reachability [ESA 16] Given a graph G = (V, E) of n nodes and bounded treewidth Preprocessing time Space Pair query time Single-source query time O(n) O(n) O(n) ( O n 2 log n ) ( O n 2 log n ) O(1) ( O n log n O(n log n) O(n log n) O(log n) O(n) ( ) O(n) O(n) O (1) O n log n ) Optimal Faster than DFS/BFS after a constant number of queries A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 18

42 Reachability [ESA 16] Given a graph G = (V, E) of n nodes and bounded treewidth Preprocessing time Space Pair query time Single-source query time O(n) O(n) O(n) ( O n 2 log n ) ( O n 2 log n ) O(1) ( O n log n O(n log n) O(n log n) O(log n) O(n) ( ) O(n) O(n) O (1) O n log n ) Optimal Faster than DFS/BFS after a constant number of queries A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 18

43 Reachability [ESA 16] Given a graph G = (V, E) of n nodes and bounded treewidth Preprocessing time Space Pair query time Single-source query time O(n) O(n) O(n) ( O n 2 log n ) ( O n 2 log n ) O(1) ( O n log n O(n log n) O(n log n) O(log n) O(n) ( ) O(n) O(n) O (1) O n log n ) Optimal Faster than DFS/BFS after a constant number of queries A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 18

44 Interprocedural Dataflow Analysis on Recursive Graphs of Low Treewidth A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 19

45 Interprocedural Dataflow Analysis Input: Recursive graph G with n nodes Finite graphs G i of n i nodes and bounded treewidth Every G i has a unique entry and exit A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 20

46 Interprocedural Dataflow Analysis Input: Recursive graph G with n nodes Finite graphs G i of n i nodes and bounded treewidth Every G i has a unique entry and exit D data fact set e.g. variable x is uninitialized, variable y is constant Weighted graph Semiring distance on lattice over D A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 20

47 Interprocedural Dataflow Analysis Input: Recursive graph G with n nodes Finite graphs G i of n i nodes and bounded treewidth Every G i has a unique entry and exit D data fact set e.g. variable x is uninitialized, variable y is constant Weighted graph Semiring distance on lattice over D Theorem (POPL 15) For low-treewidth graphs we construct dynamic reachability oracles: Preprocess G i in O(n i D 3 ) time Query for the distance d(u, v) in O( D 3 log n i ) time Update the weight of an edge (u, v) in O( D 3 log n i ) time A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 20

48 Interprocedural Dataflow Analysis 0 G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

49 Interprocedural Dataflow Analysis 0 G 1 G 2... G k Preprocess Preprocess Preprocess A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

50 Interprocedural Dataflow Analysis 0 G 1 G 2... G k 1 G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

51 Interprocedural Dataflow Analysis 0 G 1 G 2... G k Query d(en 1, Ex 1 ) Query d(en i, Ex i ) 1 G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

52 Interprocedural Dataflow Analysis 0 G 1 G 2... G k Query d(en 1, Ex 1 ) 1 G 1 G 2... G k Update wt 2 (C, R) A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

53 Interprocedural Dataflow Analysis 0 G 1 G 2... G k 1 G 1 G 2... G k h G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

54 Interprocedural Dataflow Analysis 0 G 1 G 2... G k 1 G 1 G 2... G k Query d(u, v) in O(log n 2 ) h G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

55 Interprocedural Dataflow Analysis 0 G 1 G 2... G k 1 G 1 G 2... G k Query d(u, v) in O(1) h G 1 G 2... G k A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 21

56 Dataflow Analysis [POPL 15] Input graph with n nodes, D data fact set, D = Ω(log n) Preprocessing time Space Query Single-source Pair No - O(n D 2 ) O(n D 3 ) O(n D 3 ) preprocessing Complete O(n 2 D 3 ) O(n 2 D 2 ) O(n D 2 ) O( D 2 ) preprocessing Ours O(n D 3 ) O(n D 2 ) O(n D 2 ) O( D 2 ) A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 22

57 Dataflow Analysis [POPL 15] Input graph with n nodes, D data fact set, D = Ω(log n) Preprocessing time Space Query Single-source Pair No - O(n D 2 ) O(n D 3 ) O(n D 3 ) preprocessing Complete O(n 2 D 3 ) O(n 2 D 2 ) O(n D 2 ) O( D 2 ) preprocessing Ours O(n D 3 ) O(n D 2 ) O(n D 2 ) O( D 2 ) A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 22

58 Dyck Reachability on Bidirected Graphs A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 23

59 Bidirected graphs ( i x y u, v V : λ(u, v) = ( i λ(v, u) =) i ) i A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 24

60 Bidirected graphs ( i x y u, v V : λ(u, v) = ( i λ(v, u) =) i ā a 1 a 1 ā 1 ā 2 a 2 ) i 5 1 a 1 ā ā 1 a 2 (b) The bidirected graph case. illustrating a directed graph and its ph. Demand-driven field-sensitive alias analysis [YXR, ISSTA 11] [ZLYS, PLDI 13] lity is defined similarly by restricting k language, which generates strings of es. Consider an alphabet over the set {a 1,a 2,...,a k } and the set of their A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 24

61 Reachability is Equivalence Theorem (ZLYS 13) Dyck reachability on bidirected graphs is an equivalence relation. A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 25

62 Reachability is Equivalence Theorem (ZLYS 13) Dyck reachability on bidirected graphs is an equivalence relation. x ( ) y A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 25

63 Reachability is Equivalence Theorem (ZLYS 13) Dyck reachability on bidirected graphs is an equivalence relation. x ( ) ) ( y A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 25

64 Dyck Reachability on Bidirected Graphs [POPL 18] Graphs of n nodes, α(n) the inverse Ackermann Source Worst-case Time Average-case Time [ZLYS 13] O ( n 2) O (n log n) Our Result O(n α(n)) O(n) A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 26

65 Dyck Reachability on Bidirected Graphs [POPL 18] Graphs of n nodes, α(n) the inverse Ackermann Source Worst-case Time Average-case Time [ZLYS 13] O ( n 2) O (n log n) Our Result O(n α(n)) O(n) optimal! optimal! A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 26

66 Hardness? A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 27

67 Complexity of Dyck Reachability [POPL 18] O(n 3 ) 2NPDA-hard Conditional cubic lower bound A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 28

68 Complexity of Dyck Reachability [POPL 18] O(n 3 ) 2NPDA-hard Conditional cubic lower bound Theorem Dyck reachability is Boolean Matrix Multiplication - hard. A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 28

69 Complexity of Dyck Reachability [POPL 18] O(n 3 ) 2NPDA-hard Conditional cubic lower bound Theorem Dyck reachability is Boolean Matrix Multiplication - hard. A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 28

70 Complexity of Dyck Reachability [POPL 18] O(n 3 ) 2NPDA-hard Conditional cubic lower bound Theorem Dyck reachability on low-treewidth graphs is Boolean Matrix Multiplication - hard. Can we do O(n 3 / log 2 n)? A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 28

71 Complexity on Bidirected Graphs [POPL 18] Theorem Dyck reachability on constant-treewidth, bidirected graphs requires Ω(n α(n)) time. A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 29

72 Complexity on Bidirected Graphs [POPL 18] Theorem Dyck reachability on constant-treewidth, bidirected graphs requires Ω(n α(n)) time. Compare with Theorem (ZLYZ 13) Dyck reachability on bidirected trees solvable in O(n) time. Typically complexity on low-treewidth graphs = complexity on trees A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 29

73 Implementation & Experiments A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 30

74 Implementation & Experiments Alias Analysis Implementation in C++ Compared with [ZLYS, PLDI 13] DaCapo-2006 benchmarks SPGs from [YXR, ISSTA 11] A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 30

75 Implementation & Experiments Alias Analysis Implementation in C++ Compared with [ZLYS, PLDI 13] DaCapo-2006 benchmarks SPGs from [YXR, ISSTA 11] Data-dependence Analysis Implementation in Java Compared with TAL reachability [TWZXZM, POPL 15] Benchmarks: SPECjvm randomly chosen GitHub projects A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 30

76 Alias Analysis Time-usage comparison (ms) Time % antlr bloat chart eclipse fop hsqldb jython luindex lusearch pmd xalan Our Algorithm Existing A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 31

77 Data-dependence Analysis Time % Time-usage comparison (ms) Library (preprocessing) helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 32

78 Data-dependence Analysis Time % Time % Time-usage comparison (ms) Library (preprocessing) helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL Client helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 32

79 Data-dependence Analysis Time % Time-usage comparison (ms) Library (preprocessing) Time % 0 helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL Client helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 32

80 Data-dependence Analysis Space % Space-usage comparison (MB) Library (preprocessing) helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 33

81 Data-dependence Analysis Space % Space-usage comparison (MB) Library (preprocessing) helloworld check compiler sample crypto derby mpegaudio xml mushroom btree startup sunflow compress parser scimark Our Algorithm TAL CFL A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 33

82 Thank you! Questions? A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 34

Optimal Dyck Reachability for Data-dependence and Alias Analysis

Optimal Dyck Reachability for Data-dependence and Alias Analysis 1 Optimal Dyck Reachability for Data-dependence and Alias Analysis KRISHNENDU CHATTERJEE, Institute of Science and Technology, Austria BHAVYA CHOUDHARY, Indian Institute of Technology, Bombay ANDREAS PAVLOGIANNIS,

More information

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine

Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code

More information

Averroes: Letting go of the library!

Averroes: Letting go of the library! Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]

More information

Efficient Runtime Tracking of Allocation Sites in Java

Efficient Runtime Tracking of Allocation Sites in Java Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?

More information

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler

Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center October

More information

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo

Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation

More information

Chronicler: Lightweight Recording to Reproduce Field Failures

Chronicler: Lightweight Recording to Reproduce Field Failures Chronicler: Lightweight Recording to Reproduce Field Failures Jonathan Bell, Nikhil Sarda and Gail Kaiser Columbia University, New York, NY USA What happens when software crashes? Stack Traces Aren

More information

Interprocedural Analysis. CS252r Fall 2015

Interprocedural Analysis. CS252r Fall 2015 Interprocedural Analysis CS252r Fall 2015 Procedures So far looked at intraprocedural analysis: analyzing a single procedure Interprocedural analysis uses calling relationships among procedures Enables

More information

Probabilistic Calling Context

Probabilistic Calling Context Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213

More information

Towards Parallel, Scalable VM Services

Towards Parallel, Scalable VM Services Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors

More information

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat

Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.

More information

Free-Me: A Static Analysis for Automatic Individual Object Reclamation

Free-Me: A Static Analysis for Automatic Individual Object Reclamation Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted

More information

Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler

Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler Christian Häubl Institute for System Software Johannes Kepler University Linz Austria haeubl@ssw.jku.at

More information

A Dynamic Evaluation of the Precision of Static Heap Abstractions

A Dynamic Evaluation of the Precision of Static Heap Abstractions A Dynamic Evaluation of the Precision of Static Heap Abstractions OOSPLA - Reno, NV October 20, 2010 Percy Liang Omer Tripp Mayur Naik Mooly Sagiv UC Berkeley Tel-Aviv Univ. Intel Labs Berkeley Tel-Aviv

More information

Introduction A Tiny Example Language Type Analysis Static Analysis 2009

Introduction A Tiny Example Language Type Analysis Static Analysis 2009 Introduction A Tiny Example Language Type Analysis 2009 Michael I. Schwartzbach Computer Science, University of Aarhus 1 Questions About Programs Does the program terminate? How large can the heap become

More information

Refinement-Based Context-Sensitive Points-To Analysis for Java

Refinement-Based Context-Sensitive Points-To Analysis for Java Refinement-Based Context-Sensitive Points-To Analysis for Java Manu Sridharan, Rastislav Bodík UC Berkeley PLDI 2006 1 What Does Refinement Buy You? Increased scalability: enable new clients Memory: orders

More information

Efficient Runtime Tracking of Allocation Sites in Java

Efficient Runtime Tracking of Allocation Sites in Java Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research Tokyo 623-4, Shimotsuruma, Yamato-shi, Kanagawa-ken,

More information

Lightweight Data Race Detection for Production Runs

Lightweight Data Race Detection for Production Runs Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,

More information

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler

A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April

More information

An Efficient Storeless Heap Abstraction Using SSA Form

An Efficient Storeless Heap Abstraction Using SSA Form An Efficient Storeless Heap Abstraction Using SSA Form Nomair A. Naeem Ondřej Lhoták D. R. Cheriton School of Computer Science University of Waterloo, Canada {nanaeem,olhotak}@uwaterloo.ca Abstract Precise,

More information

Advanced Compiler Construction

Advanced Compiler Construction CS 526 Advanced Compiler Construction http://misailo.cs.illinois.edu/courses/cs526 INTERPROCEDURAL ANALYSIS The slides adapted from Vikram Adve So Far Control Flow Analysis Data Flow Analysis Dependence

More information

Compilation 2012 Static Analysis

Compilation 2012 Static Analysis Compilation 2012 Jan Midtgaard Michael I. Schwartzbach Aarhus University Interesting Questions Is every statement reachable? Does every non-void method return a value? Will local variables definitely be

More information

Understanding Parallelism-Inhibiting Dependences in Sequential Java

Understanding Parallelism-Inhibiting Dependences in Sequential Java Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core

More information

Graph-theoretic Properties of Control Flow Graphs and Applications

Graph-theoretic Properties of Control Flow Graphs and Applications Graph-theoretic Properties of Control Flow Graphs and Applications by Neeraj Kumar A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of

More information

Uncovering Performance Problems in Java Applications with Reference Propagation Profiling

Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University

More information

Java Performance Evaluation through Rigorous Replay Compilation

Java Performance Evaluation through Rigorous Replay Compilation Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,

More information

Demand-Driven Points-To Analysis For Java

Demand-Driven Points-To Analysis For Java Demand-Driven Points-To Analysis For Java Manu Sridharan, Ras Bodik Lexin Shan Denis Gopan UC Berkeley Microsoft UW Madison OOPSLA 2005 1 Who needs better pointer analysis? IDEs: for refactoring, program

More information

Compiler Design. Fall Data-Flow Analysis. Sample Exercises and Solutions. Prof. Pedro C. Diniz

Compiler Design. Fall Data-Flow Analysis. Sample Exercises and Solutions. Prof. Pedro C. Diniz Compiler Design Fall 2015 Data-Flow Analysis Sample Exercises and Solutions Prof. Pedro C. Diniz USC / Information Sciences Institute 4676 Admiralty Way, Suite 1001 Marina del Rey, California 90292 pedro@isi.edu

More information

Software Challenges: Abstraction and Analysis

Software Challenges: Abstraction and Analysis Software Challenges: Abstraction and Analysis Martin Bravenboer University of Massachusetts Amherst University of Oregon April 2, 2009 University of Waterloo my research 1 the design and implementation

More information

Program Calling Context. Motivation

Program Calling Context. Motivation Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The

More information

Approximation of the Worst-Case Execution Time Using Structural Analysis. Matteo Corti and Thomas Gross Zürich

Approximation of the Worst-Case Execution Time Using Structural Analysis. Matteo Corti and Thomas Gross Zürich Approximation of the Worst-Case Execution Time Using Structural Analysis Matteo Corti and Thomas Gross Zürich Goal Worst-case execution time estimation of softreal time Java applications. We focus on semantic

More information

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services

How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th

More information

Alias Analysis. Last time Interprocedural analysis. Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1

Alias Analysis. Last time Interprocedural analysis. Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1 Alias Analysis Last time Interprocedural analysis Today Intro to alias analysis (pointer analysis) CS553 Lecture Alias Analysis I 1 Aliasing What is aliasing? When two expressions denote the same mutable

More information

Compiler Design. Fall Control-Flow Analysis. Prof. Pedro C. Diniz

Compiler Design. Fall Control-Flow Analysis. Prof. Pedro C. Diniz Compiler Design Fall 2015 Control-Flow Analysis Sample Exercises and Solutions Prof. Pedro C. Diniz USC / Information Sciences Institute 4676 Admiralty Way, Suite 1001 Marina del Rey, California 90292

More information

Lecture 7: Asymmetric K-Center

Lecture 7: Asymmetric K-Center Advanced Approximation Algorithms (CMU 18-854B, Spring 008) Lecture 7: Asymmetric K-Center February 5, 007 Lecturer: Anupam Gupta Scribe: Jeremiah Blocki In this lecture, we will consider the K-center

More information

Chapter 1 Introduction

Chapter 1 Introduction Chapter 1 Course INF5906 / autum 2017 Chapter 1 Learning Targets of Chapter. Apart from a motivational introduction, the chapter gives a high-level overview over larger topics covered in the lecture. They

More information

CSCI 270: Introduction to Algorithms and Theory of Computing Fall 2017 Prof: Leonard Adleman Scribe: Joseph Bebel

CSCI 270: Introduction to Algorithms and Theory of Computing Fall 2017 Prof: Leonard Adleman Scribe: Joseph Bebel CSCI 270: Introduction to Algorithms and Theory of Computing Fall 2017 Prof: Leonard Adleman Scribe: Joseph Bebel We will now discuss computer programs, a concrete manifestation of what we ve been calling

More information

Syntax-Directed Translation. Lecture 14

Syntax-Directed Translation. Lecture 14 Syntax-Directed Translation Lecture 14 (adapted from slides by R. Bodik) 9/27/2006 Prof. Hilfinger, Lecture 14 1 Motivation: parser as a translator syntax-directed translation stream of tokens parser ASTs,

More information

MapReduce Algorithms. Barna Saha. March 28, 2016

MapReduce Algorithms. Barna Saha. March 28, 2016 MapReduce Algorithms Barna Saha March 28, 2016 Complexity Model for MapReduce Minimum Spanning Tree in MapReduce Computing Dense Subgraph in MapReduce Complexity Model for MapReduce:MRC i Input: finite

More information

Program Analysis and Verification

Program Analysis and Verification Program Analysis and Verification 0368-4479 Noam Rinetzky Lecture 12: Interprocedural Analysis + Numerical Analysis Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav 1 Procedural program void main()

More information

Binomial Coefficient Identities and Encoding/Decoding

Binomial Coefficient Identities and Encoding/Decoding Binomial Coefficient Identities and Encoding/Decoding CSE21 Winter 2017, Day 18 (B00), Day 12 (A00) February 24, 2017 http://vlsicad.ucsd.edu/courses/cse21-w17 MT2 Review Sessions Today and Tomorrow! TODAY

More information

Parsing Expression Grammars and Packrat Parsing. Aaron Moss

Parsing Expression Grammars and Packrat Parsing. Aaron Moss Parsing Expression Grammars and Packrat Parsing Aaron Moss References > B. Ford Packrat Parsing: Simple, Powerful, Lazy, Linear Time ICFP (2002) > Parsing Expression Grammars: A Recognition- Based Syntactic

More information

Elfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang

Elfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Elfen Scheduling Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Australian National University Stephen M Blackburn Australian National University

More information

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization

Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming

More information

Introduction to Parameterized Complexity

Introduction to Parameterized Complexity Introduction to Parameterized Complexity M. Pouly Department of Informatics University of Fribourg, Switzerland Internal Seminar June 2006 Outline Introduction & Motivation The Misery of Dr. O The Perspective

More information

CpSc 421 Final Solutions

CpSc 421 Final Solutions CpSc 421 Final Solutions Do any eight of the ten problems below. If you attempt more than eight problems, please indicate which ones to grade (otherwise we will make a random choice). This allows you to

More information

Encoding Data Structures

Encoding Data Structures Encoding Data Structures Rajeev Raman University of Leicester ERATO-ALSIP special seminar RMQ problem Given a static array A[1..n], pre-process A to answer queries: RMQ(l, r) : return max l i r A[i]. 47

More information

Context-sensitive points-to analysis: is it worth it?

Context-sensitive points-to analysis: is it worth it? McGill University School of Computer Science Sable Research Group Context-sensitive points-to analysis: is it worth it? Sable Technical Report No. 2005-2 Ondřej Lhoták Laurie Hendren October 21, 2005 w

More information

MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance

MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance Feng Xian, Witawas Srisa-an, and Hong Jiang Department of Computer Science & Engineering University of Nebraska-Lincoln

More information

Static Program Analysis Part 9 pointer analysis. Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University

Static Program Analysis Part 9 pointer analysis. Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Static Program Analysis Part 9 pointer analysis Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Agenda Introduction to points-to analysis Andersen s analysis Steensgaards s

More information

Parsing Expression Grammar and Packrat Parsing

Parsing Expression Grammar and Packrat Parsing Parsing Expression Grammar and Packrat Parsing (Survey) IPLAS Seminar Oct 27, 2009 Kazuhiro Inaba This Talk is Based on These Resources The Packrat Parsing and PEG Page (by Bryan Ford) http://pdos.csail.mit.edu/~baford/packrat/

More information

Hierarchical Pointer Analysis for Distributed Programs

Hierarchical Pointer Analysis for Distributed Programs Hierarchical Pointer Analysis for Distributed Programs Amir Kamil Computer Science Division, University of California, Berkeley kamil@cs.berkeley.edu April 14, 2006 1 Introduction Many distributed, parallel

More information

Static Program Analysis Part 1 the TIP language

Static Program Analysis Part 1 the TIP language Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate

More information

Context-sensitive points-to analysis: is it worth it?

Context-sensitive points-to analysis: is it worth it? Context-sensitive points-to analysis: is it worth it? Ondřej Lhoták 1,2 and Laurie Hendren 2 olhotak@uwaterloo.ca hendren@sable.mcgill.ca 1 School of Computer Science, University of Waterloo, Waterloo,

More information

A Preliminary Workload Analysis of SPECjvm2008

A Preliminary Workload Analysis of SPECjvm2008 A Preliminary Workload Analysis of SPECjvm2008 Hitoshi Oi The University of Aizu January 24, 2009 International Conference on Computer Engineering and Technology 2009 Outline Introduction: SPECjvm2008

More information

Screaming Fast Declarative Pointer Analysis

Screaming Fast Declarative Pointer Analysis Screaming Fast Declarative Pointer Analysis http://doop.program-analysis.org Martin Bravenboer and Yannis Smaragdakis University of Massachusetts Amherst University of Oregon NEPLS March 5, 2008 overview

More information

Trace-based JIT Compilation

Trace-based JIT Compilation Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,

More information

Distributed Relationship Schemes for Trees

Distributed Relationship Schemes for Trees Distributed Relationship Schemes for Trees Cyril Gavoille Arnaud Labourel University of Bordeaux, France December 17-21, 2007, Sendai Distributed bounded distance oracle Problem Assign a piece of information

More information

COMP Online Algorithms. Online Bin Packing. Shahin Kamali. Lecture 20 - Nov. 16th, 2017 University of Manitoba

COMP Online Algorithms. Online Bin Packing. Shahin Kamali. Lecture 20 - Nov. 16th, 2017 University of Manitoba COMP 7720 - Online Algorithms Online Bin Packing Shahin Kamali Lecture 20 - Nov. 16th, 2017 University of Manitoba COMP 7720 - Online Algorithms Online Bin Packing 1 / 24 Review & Plan COMP 7720 - Online

More information

Phase-based Adaptive Recompilation in a JVM

Phase-based Adaptive Recompilation in a JVM Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable

More information

Program Static Analysis. Overview

Program Static Analysis. Overview Program Static Analysis Overview Program static analysis Abstract interpretation Data flow analysis Intra-procedural Inter-procedural 2 1 What is static analysis? The analysis to understand computer software

More information

EDAN65: Compilers, Lecture 06 A LR parsing. Görel Hedin Revised:

EDAN65: Compilers, Lecture 06 A LR parsing. Görel Hedin Revised: EDAN65: Compilers, Lecture 06 A LR parsing Görel Hedin Revised: 2017-09-11 This lecture Regular expressions Context-free grammar Attribute grammar Lexical analyzer (scanner) Syntactic analyzer (parser)

More information

PROBLEM SOLVING AND PYTHON PROGRAMMING

PROBLEM SOLVING AND PYTHON PROGRAMMING ALGORITHM UNIT-1 It is defined as a sequence of instructions that describe a method for solving a problem. In other words it is a step by step procedure for solving a problem. Properties of Algorithms

More information

Untold stories of Synthesis, Verification, and Runtime Checking

Untold stories of Synthesis, Verification, and Runtime Checking Untold stories of Synthesis, Verification, and Runtime Checking Eran Yahav IBM T.J. Watson Research Center Joint Work with Martin Vechev and Matt Arnold The Bigger Picture Synthesis Dynamic Software Reliability

More information

Optimal Parallel Randomized Renaming

Optimal Parallel Randomized Renaming Optimal Parallel Randomized Renaming Martin Farach S. Muthukrishnan September 11, 1995 Abstract We consider the Renaming Problem, a basic processing step in string algorithms, for which we give a simultaneously

More information

Inferring Aliasing and Encapsulation Properties for Java

Inferring Aliasing and Encapsulation Properties for Java Inferring Aliasing and Encapsulation Properties for Java Kin-Keung Ma University of Maryland, College Park kkma@cs.umd.edu Jeffrey S. Foster University of Maryland, College Park jfoster@cs.umd.edu Abstract

More information

Refinement-Based Context-Sensitive Points-To Analysis for Java

Refinement-Based Context-Sensitive Points-To Analysis for Java Refinement-Based Context-Sensitive Points-To Analysis for Java Manu Sridharan University of California, Berkeley manu_s@cs.berkeley.edu Rastislav Bodík University of California, Berkeley bodik@cs.berkeley.edu

More information

The CYK Algorithm. We present now an algorithm to decide if w L(G), assuming G to be in Chomsky Normal Form.

The CYK Algorithm. We present now an algorithm to decide if w L(G), assuming G to be in Chomsky Normal Form. CFG [1] The CYK Algorithm We present now an algorithm to decide if w L(G), assuming G to be in Chomsky Normal Form. This is an example of the technique of dynamic programming Let n be w. The natural algorithm

More information

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1

Areas related to SW verif. Trends in Software Validation. Your Expertise. Research Trends High level. Research Trends - Ex 2. Research Trends Ex 1 Areas related to SW verif. Trends in Software Validation Abhik Roychoudhury CS 6214 Formal Methods Model based techniques Proof construction techniques Program Analysis Static Analysis Abstract Interpretation

More information

Tree Decompositions, Treewidth, and NP-Hard Problems. A Survey Paper on Recent Findings in the Field. Gerrod Voigt

Tree Decompositions, Treewidth, and NP-Hard Problems. A Survey Paper on Recent Findings in the Field. Gerrod Voigt Tree Decompositions, Treewidth, and NP-Hard Problems A Survey Paper on Recent Findings in the Field Gerrod Voigt Mathematics Massachusetts Institute of Technology Abstract This survey paper provides an

More information

CS21 Decidability and Tractability

CS21 Decidability and Tractability CS21 Decidability and Tractability Lecture 9 January 26, 2018 Outline Turing Machines and variants multitape TMs nondeterministic TMs Church-Turing Thesis decidable, RE, co-re languages Deciding and Recognizing

More information

Persistent Pointer Information

Persistent Pointer Information Persistent Pointer Information Xiao Xiao Qirun Zhang Jinguo Zhou Charles Zhang The Prism Research Group The Hong Kong University of Science and Technology {richardxx, qrzhang, andyzhou, charlesz}@cse.ust.hk

More information

PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification

PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification Lu Fang 1, Liang Dou 2, and Guoqing Xu 1 1 University of California, Irvine, USA {lfang3, guoqingx}@ics.uci.edu 2 East

More information

4/24/18. Overview. Program Static Analysis. Has anyone done static analysis? What is static analysis? Why static analysis?

4/24/18. Overview. Program Static Analysis. Has anyone done static analysis? What is static analysis? Why static analysis? Overview Program Static Analysis Program static analysis Abstract interpretation Static analysis techniques 2 What is static analysis? The analysis to understand computer software without executing programs

More information

Today Program Analysis for finding bugs, especially security bugs problem specification motivation approaches remaining issues

Today Program Analysis for finding bugs, especially security bugs problem specification motivation approaches remaining issues Finding Bugs Last time Run-time reordering transformations Today Program Analysis for finding bugs, especially security bugs problem specification motivation approaches remaining issues CS553 Lecture Finding

More information

Classifying Java Class Transformations for Pervasive Virtualized Access

Classifying Java Class Transformations for Pervasive Virtualized Access Classifying Java Class Transformations for Pervasive Virtualized Access Phil McGachey Department of Computer Science Purdue University West Lafayette, IN phil@cs.purdue.edu Antony L. Hosking Department

More information

programming languages need to be precise a regular expression is one of the following: tokens are the building blocks of programs

programming languages need to be precise a regular expression is one of the following: tokens are the building blocks of programs Chapter 2 :: Programming Language Syntax Programming Language Pragmatics Michael L. Scott Introduction programming languages need to be precise natural languages less so both form (syntax) and meaning

More information

Pointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell

Pointer Analysis in the Presence of Dynamic Class Loading. Hind Presented by Brian Russell Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan and Michael Hind Presented by Brian Russell Claim: First nontrivial pointer analysis dealing with all Java language features

More information

Compiler Design Concepts. Syntax Analysis

Compiler Design Concepts. Syntax Analysis Compiler Design Concepts Syntax Analysis Introduction First task is to break up the text into meaningful words called tokens. newval=oldval+12 id = id + num Token Stream Lexical Analysis Source Code (High

More information

Phosphor: Illuminating Dynamic. Data Flow in Commodity JVMs

Phosphor: Illuminating Dynamic. Data Flow in Commodity JVMs Phosphor: Illuminating Dynamic Fork me on Github Data Flow in Commodity JVMs Jonathan Bell and Gail Kaiser Columbia University, New York, NY USA Dynamic Data Flow Analysis: Taint Tracking Output that is

More information

COMP 102: Computers and Computing

COMP 102: Computers and Computing COMP 102: Computers and Computing Lecture 26: Final Exam Review Instructor: Kaleem Siddiqi (siddiqi@cim.mcgill.ca) Class web page: www.cim.mcgill.ca/~siddiqi/102.html Number Representation and Logic Binary

More information

CSCI312 Principles of Programming Languages!

CSCI312 Principles of Programming Languages! CSCI312 Principles of Programming Languages!! Chapter 3 Regular Expression and Lexer Xu Liu Recap! Copyright 2006 The McGraw-Hill Companies, Inc. Clite: Lexical Syntax! Input: a stream of characters from

More information

Disjoint Sets and the Union/Find Problem

Disjoint Sets and the Union/Find Problem Disjoint Sets and the Union/Find Problem Equivalence Relations A binary relation R on a set S is a subset of the Cartesian product S S. If (a, b) R we write arb and say a relates to b. Relations can have

More information

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces

Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.

More information

Large-Scale API Protocol Mining for Automated Bug Detection

Large-Scale API Protocol Mining for Automated Bug Detection Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();

More information

CS2210: Compiler Construction Syntax Analysis Syntax Analysis

CS2210: Compiler Construction Syntax Analysis Syntax Analysis Comparison with Lexical Analysis The second phase of compilation Phase Input Output Lexer string of characters string of tokens Parser string of tokens Parse tree/ast What Parse Tree? CS2210: Compiler

More information

Intelligent Compilation

Intelligent Compilation Intelligent Compilation John Cavazos Department of Computer and Information Sciences University of Delaware Autotuning and Compilers Proposition: Autotuning is a component of an Intelligent Compiler. Code

More information

Fractional Cascading

Fractional Cascading C.S. 252 Prof. Roberto Tamassia Computational Geometry Sem. II, 1992 1993 Lecture 11 Scribe: Darren Erik Vengroff Date: March 15, 1993 Fractional Cascading 1 Introduction Fractional cascading is a data

More information

Context-Free Grammar (CFG)

Context-Free Grammar (CFG) Context-Free Grammar (CFG) context-free grammar looks like this bunch of rules: ain idea: + 1 (),, are non-terminal symbols aka variables. When you see them, you apply rules to expand. One of them is designated

More information

Static analysis and all that

Static analysis and all that Static analysis and all that Martin Steffen IfI UiO Spring 2014 uio Static analysis and all that Martin Steffen IfI UiO Spring 2014 uio Plan approx. 15 lectures, details see web-page flexible time-schedule,

More information

Static and Dynamic Program Analysis: Synergies and Applications

Static and Dynamic Program Analysis: Synergies and Applications Static and Dynamic Program Analysis: Synergies and Applications Mayur Naik Intel Labs, Berkeley CS 243, Stanford University March 9, 2011 Today s Computing Platforms Trends: parallel cloud mobile Traits:

More information

Treewidth and graph minors

Treewidth and graph minors Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under

More information

Parsing. Earley Parsing. Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 39

Parsing. Earley Parsing. Laura Kallmeyer. Winter 2017/18. Heinrich-Heine-Universität Düsseldorf 1 / 39 Parsing Earley Parsing Laura Kallmeyer Heinrich-Heine-Universität Düsseldorf Winter 2017/18 1 / 39 Table of contents 1 Idea 2 Algorithm 3 Tabulation 4 Parsing 5 Lookaheads 2 / 39 Idea (1) Goal: overcome

More information

Spring 2011 CSE Qualifying Exam Core Subjects. February 26, 2011

Spring 2011 CSE Qualifying Exam Core Subjects. February 26, 2011 Spring 2011 CSE Qualifying Exam Core Subjects February 26, 2011 1 Architecture 1. Consider a memory system that has the following characteristics: bandwidth to lower level memory type line size miss rate

More information

1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing

1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing 1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing GUOQING XU, University of California, Irvine NICK MITCHELL, IBM T. J. Watson Research Center MATTHEW ARNOLD, IBM T. J. Watson Research

More information

Lecture 20 Pointer Analysis

Lecture 20 Pointer Analysis Lecture 20 Pointer Analysis Basics Design Options Pointer Analysis Algorithms Pointer Analysis Using BDDs Probabilistic Pointer Analysis (Slide content courtesy of Greg Steffan, U. of Toronto) 15-745:

More information

Space-efficient representations of non-linear objects

Space-efficient representations of non-linear objects Space-efficient representations of non-linear objects Rajeev Raman, University of Leicester ラアジブラアマン レスタ大學 1 Introduction We are increasingly processing very large data sets. Processing is often complex

More information

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs

What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs What Every Xtext User Wished to Know Industry Experience of Implementing 80+ DSLs EclipseCon Europe 2016 2016-10-26 Roman Mitin Avaloq Evolution AG Allmendstrasse 140 8027 Zurich Switzerland T +41 58 316

More information

Crafting a Compiler with C (V) Scanner generator

Crafting a Compiler with C (V) Scanner generator Crafting a Compiler with C (V) 資科系 林偉川 Scanner generator Limit the effort in building a scanner to specify which tokens the scanner is to recognize Some generators do not produce an entire scanner; rather,

More information

Combined Static and Dynamic Mutability Analysis 1/31

Combined Static and Dynamic Mutability Analysis 1/31 Combined Static and Dynamic Mutability Analysis SHAY ARTZI, ADAM KIEZUN, DAVID GLASSER, MICHAEL D. ERNST ASE 2007 PRESENTED BY: MENG WU 1/31 About Author Program Analysis Group, Computer Science and Artificial

More information