New Algorithms for Static Analysis via Dyck Reachability
|
|
- Moses Cummings
- 5 years ago
- Views:
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
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 informationLu 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 informationAverroes: 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 informationEfficient 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 informationAdaptive 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 informationIdentifying 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 informationChronicler: 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 informationInterprocedural 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 informationProbabilistic 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 informationTowards 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 informationContinuous 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 informationFree-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 informationDeriving 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 informationA 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 informationIntroduction 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 informationRefinement-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 informationEfficient 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 informationLightweight 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 informationA 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 informationAn 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 informationAdvanced 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 informationCompilation 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 informationUnderstanding 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 informationGraph-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 informationUncovering 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 informationJava 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 informationDemand-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 informationCompiler 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 informationSoftware 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 informationProgram 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 informationApproximation 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 informationHow 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 informationAlias 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 informationCompiler 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 informationLecture 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 informationChapter 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 informationCSCI 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 informationSyntax-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 informationMapReduce 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 informationProgram 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 informationBinomial 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 informationParsing 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 informationElfen 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 informationToward 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 informationIntroduction 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 informationCpSc 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 informationEncoding 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 informationContext-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 informationMicroPhase: 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 informationStatic 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 informationParsing 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 informationHierarchical 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 informationStatic 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 informationContext-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 informationA 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 informationScreaming 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 informationTrace-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 informationDistributed 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 informationCOMP 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 informationPhase-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 informationProgram 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 informationEDAN65: 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 informationPROBLEM 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 informationUntold 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 informationOptimal 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 informationInferring 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 informationRefinement-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 informationThe 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 informationAreas 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 informationTree 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 informationCS21 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 informationPersistent 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 informationPERFBLOWER: 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 information4/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 informationToday 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 informationClassifying 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 informationprogramming 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 informationPointer 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 informationCompiler 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 informationPhosphor: 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 informationCOMP 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 informationCSCI312 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 informationDisjoint 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 informationJinn: 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 informationLarge-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 informationCS2210: 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 informationIntelligent 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 informationFractional 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 informationContext-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 informationStatic 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 informationStatic 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 informationTreewidth 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 informationParsing. 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 informationSpring 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 information1 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 informationLecture 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 informationSpace-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 informationWhat 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 informationCrafting 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 informationCombined 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