SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
1 Introduction 
The problem of slicing requires us to solve data dependencies and control de-pendencies. 
Finding data dependencies require us to solve the problem of reach-ing 
definitions. Control dependencies require finding dominance frontiers. The 
problem of aliasing has to to solved for computing correct data dependencies. 
Each of these individual problems can be viewed as instance of the more general 
problem of program analysis. 
2 Program Analysis 
Program analysis is the method of statically computing properties of a program. 
Program analysis is useful for performing optimizations. There can be many 
interesting properties that can be queried about programs. [?]. In particular 
for slicing we are interested in the following. 
1. What definitions of a variable can reach a particular program point 
2. What objects can a reference variable point to 
3. What types can a receiver variable point to 
4. Can the pointer p point to null 
5. For computing control dependence information, dominator information is 
needed 
6. What variables can be modified or referenced by a procedure 
The actual paths that are taken during execution is difficult to determine. 
So it is difficult to give precise answers to many of these questions related to 
program analysis, approximate solutions are computed. These solutions are 
conservative in the sense, they err on the safer side. They overestimate the 
number of definitions reaching a program point or the objects the reference 
variable can point to. 
The initial methods of performing data flow analysis was done by executing 
the program symbolically tracing through all control flow paths collecting in-formation 
about dataflow values. This is computationally expensive and there 
can be problem of termination if dataflow values keep alternating. 
Monotone data flow frameworks overcome these problems by 
1
1. putting a partial order on the abstract data values such that they change 
in the same direction during abstract interpretation , reducing termination 
problems. 
2. If two control flow paths merge, we have to assume conservative informa-tion 
that holds good about the abstract values along both the paths. A 
semilattice L is used to represent the abstract values because the meet 
operation gives us exactly this information. 
3. To every node v in the CFG, we assign a variable [[v]] ranging over the 
elements of L. 
4. for every point in the program ,an equation that relates the value of the 
variable of the corresponding node to those of other nodes (typically the 
neighbors). 
To guarantee termination, two useful limitations are made on the general 
framework, which enforces all the transfer functions to be monotone and the 
height of the lattice to be finite. Intuitively, this means that the transfer function 
can only climb up and since the height is finite, it can at most reach the top 
in the end and thus have to stabilize. This framework is called monotone data 
flow analysis framework and its formal definition is listed below 
With each node a function is associated which maps each value in the semi-lattice 
to another value in the semilattice. The set of such functions at every 
node in the program forms a system of dataflow equations. A fixed point solu-tion 
to these equations gives the conservative information that can be assumed 
to be valid at every node in the program. 
For dataflow frameworks the set of functions F has to satisfy the following 
properties. 
1. Closedness under composition is important because we can summarize the 
effects of a sequence statements without leaving the function space. 
2. Identity function has to be there to take into account of empty basic 
blocks. 
3. Closed under pointwise meet, if h(x) = f(x) ^ g(x) then h 2 F. This is 
necessary because h can represent the effect of convergence of two control 
flow paths. 
2
4. Monotonicity of functions in F guarantee the existence of fixed point so-lution. 
Distributivity 
2.1 Characterization of data flow frameworks 
In presence of loops, the transfer function f has to be applied multiple times 
to summarize the effect of loops. If f describes dataflow effect of once around a 
cyclic path, then f represents the effect of a loop where the number of itera-tions 
is apriori indeterminate. 
f is said to be k-bounded , if the solution reaches a fixedpoint values before 
the k-th pass around the loop. For the classical bitvector problems ,the transfer 
function is given by f(x) = GEN + X − KILL, thus f  f = f, making them 
2-bounded. Frameworks for which f f = f hold true are called fast frameworks. 
In summary, a dataflow framework is characterized by 
1. Algebraic properties of functions in F ( monotonicity, distributivity) 
2. Finiteness properties of functions in F( boundedness, fastness, rapidity) 
3. Finiteness properties of lattice L (height) 
4. Partitionability of L and F 
There is an important class of k-bounded partionable problems called bitvector 
problems. 
2.2 Dataflow Analysis Examples 
Dataflow analysis techniques are used for the discovery of compile time code 
improvements. 
see p.12. JFL for dataflow frameworks defn Reaching Definitions The 
reaching definitions problem asks for each node (program point) n, which as-signments 
might have determined the values of the program variables at n. It 
uses (}(Asgn),,[, Asgn, ;) for property lattice. 
3
2.3 Solution Procedures 
The solution to a dataflow problem 
2.3.1 Meet over all paths solution 
A transfer function is associated with every basic block. We can define a trans-fer 
function associated with a path P given by x0 ! x1 ! x2.... ! xn as 
compositions of transfer functions associated with individual basic blocks. 
The meet over all paths solution is given by 
If all paths are executable, then MOP solution is the best statically deter-minable 
solution. However it is infeasible to determine those paths that are 
statically executed. The inaccuracy results from the fact additional infeasible 
paths may be included. Thus the MOP solution is a conservative approximation 
to the real solution. 
2.3.2 Maximal Fixed Point solution 
The MFP solution is given by 
Though MOP is the best possible solution, it has been proved that a gen-eral 
algorithm to compute MOP solution does not exist [?]. Intuitively this is 
due to presence of loops which leads to infinite number of paths. MFP solu-tion 
sacrifices precision for computability. MFP solution is less precise because 
it considers only the effect on flow values by adjacent neighbors. In case of 
distributive framework both the solutions are identical. 
2.3.3 Iterative Methods 
The iterative method solves the system of equations by initializing the node 
variables to some conservative values and successively recomputing them till 
a fixed point is reached. The naive implementation of this is called chaotic 
4
iteration. Since this is not efficient clever iterative algorithms like worklist, 
roundrobin, node listing are used. 
Kam Ullman showed that a class of problems that a round robin algorithm 
visiting nodes in reverse post order can solve in d(G)+3 passes over the graph 
G. d(G) is the depth of the graph, the maximum no of edges that can occur on 
any acyclic path in G. 
2.3.4 Elimination Methods 
When the CFG is reducible, which means that there are no multiple entry 
loops, elimination algorithm is preferred because it is usually more efficient than 
iterative algorithms. The central idea of elimination method is to represent all 
paths from start node to a particular node as a regular expression. We can 
get a high level summary function fre corresponding to the regular function 
by replacing each node with corresponding transfer function, the concatenation 
with function composition , the * operator with function closures, the union with 
meet operation. Thus the data value at a node is fre(init). The requirement of 
reducibility of the CFG assures that the summary function could be obtained 
from the above operations. Since a regular expression is used to represent a set 
of paths, elimination method is also called path algebra based approach. 
Elimination methods exploit the structural properties of the graph. The 
flow graph is reduced to single node using a series of graph transformations. 
The data flow properties of a node in a region are determined from dataflow 
properties of the region’s header node. 
3 Other Methods of Program Analysis 
1. Abstract Interpretation 
2. Constraint based analysis 
Many data flow analysis problems like reaching definitions can be efficiently 
solved using abstract interpretation. For other problems like pointer analysis, 
type inference , constraint based approach is more suitable. 
Using Data flow analysis, many interesting pieces of information cannot be 
gathered because data flow analysis does not make use of the semantic of the 
5
programming language’s operators. 
Abstract Interpretation 
Abstract interpretation amount to executing the program on the abstract 
values instead of actual values. For example, the abstract values for integers 
can the their signs or the property of being even/odd. Since concrete computa-tion 
is not performed , the results inferred by abstract interpretation can only 
be approximate. Another reason for approximation is that abstract interpre-tation 
computes conservative information that are valid in all control flow paths. 
Abstract interpretation is a theory of semantics approximation. The idea of 
abstract interpretation is to create a new semantic of the programming language 
so that the semantic always terminates and the store for every program points 
contains a superset of the values that are possible in the actual semantic, for 
every possible input. Since in this new semantic a store does not contain a single 
value for a variable but a set (or interval) of possible values, the evaluation of 
boolean and arithmetic expressions must be redefined. 
Abstract interpretation is a very powerful program analysis method. It uses 
information on the programming language’s semantic and can detect possible 
runtime errors, like division by zero or variable overflow. Since abstract inter-pretation 
can be computationally very expensive it must be taken care choose 
an appropriate value domain and appropiate heuristic for loop termination to 
ensure feasabillity. 
For example, in the following program, determining the actual values x can 
take is not feasible. However, if we are interested in abstract values of x say odd, 
even we can determine that x can have only even values. Abstract interpretation 
determines this information. 
void f() { 
int x=2; 
while(...) { 
// what values x can have here 
x=x+2; 
} 
} 
6
The most common application of abstract interpretation for solving dataflow 
problems. 
Set based analysis 
In set based analysis , sets of values are associated with a variable. The 
major difference between set based analysis and abstract interpretation is that 
set based analysis does not employ an abstract domain to approximate the 
underlying domain of computation. In set based analysis, the approximation 
occurs because all dependencies between variables are ignored. For example, if 
at some point in the program , the environment [x ! 1, y ! 2] and [x ! 3, y ! 
4] can be encountered, then set based analysis will conclude that x can have 
values 1,3 and y can have values 2,4. The dependency ”x is 1 when y is 2” is 
lost. 
In constraint based analysis, the properties to be computed are expressed as 
set constraints. In the following example, the property to be computed is the 
set of values a variable can have at runtime. 
if(...) { 
x=3; 
} 
else { 
x=6; 
} 
// x can have {3,6} 
print (x) 
These sets need not only represent integers as in the above example. The 
sets can represents points to sets of a variable or types of receiver variable. 
This ”set based” approach to program analysis consists of three phases. 
The first step is to label the interested program points, which may be terms, 
expressions or program variables. The second step is to associate with each 
label a variable which denotes the abstract values at the point. The one can 
derive a set of constraints on these variables. In the final step, these constraints 
are solved to find their minimum solution (this solving process is the main 
computational part of the analysis). 
To solve the constraints, the usual procedure is to represent each set expres-sion 
as a node and each constraint as a directed edge. A transitive closure on 
7
this graph gives all possible constraints that can be inferred. 
Data flow analysis can be viewed as set based analysis. For example consider 
live variable analysis for C programs. 
1. domain : set of program variables 
2. Variables : Sin, Sout 
3. Constants : Sdef , Suse 
4. Constraints : Sin = Suse [ (Sout − Sdef ) 
S 
5. Sout = 
X2succ(S) Xin 
3.1 Interprocedural Analysis - Context Sensitivity 
3.1.1 Functional Approach 
The idea behind functional approach is same as that of elimination algorithms, 
where we used a large transfer function to summarize the effect of a region. 
The set of valid paths in the intraprocedural case can be represented by regular 
expression. In interprocedural cases, the calls and returns have to be matched. 
The set of valid paths is given by context free grammar. A non terminal in 
the context free grammar represents the procedure. It is possible to compute a 
large function corresponding to the non terminal which summarizes the effects 
of those paths produced by the non terminal . 
example 
3.1.2 Call String Approach 
The idea behind call string approach is the contents of the stack is an important 
element to distinguish between dataflow information. The context is usually the 
current call stack. The use of call string guarantee that dataflow values from 
invalid paths are not considered. The length of call string may be unbounded , 
so k-bounded call strings are used. 
8

Weitere ähnliche Inhalte

Was ist angesagt?

Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Servicesinfopapers
 
2019 Levenshtein Transformer
2019 Levenshtein Transformer2019 Levenshtein Transformer
2019 Levenshtein Transformer広樹 本間
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...NECST Lab @ Politecnico di Milano
 
F EATURE S ELECTION USING F ISHER ’ S R ATIO T ECHNIQUE FOR A UTOMATIC ...
F EATURE  S ELECTION USING  F ISHER ’ S  R ATIO  T ECHNIQUE FOR  A UTOMATIC  ...F EATURE  S ELECTION USING  F ISHER ’ S  R ATIO  T ECHNIQUE FOR  A UTOMATIC  ...
F EATURE S ELECTION USING F ISHER ’ S R ATIO T ECHNIQUE FOR A UTOMATIC ...IJCI JOURNAL
 
Parallel Algorithm Models
Parallel Algorithm ModelsParallel Algorithm Models
Parallel Algorithm ModelsMartin Coronel
 
facility layout paper
 facility layout paper facility layout paper
facility layout paperSaurabh Tiwary
 
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...IOSRJVSP
 
PAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph ComputationPAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph Computation1crore projects
 
Hybrid Knowledge Bases for Real-Time Robotic Reasoning
Hybrid Knowledge Bases for Real-Time Robotic ReasoningHybrid Knowledge Bases for Real-Time Robotic Reasoning
Hybrid Knowledge Bases for Real-Time Robotic ReasoningHassan Rifky
 
FPGA configuration of an alloyed correlated branch predictor used with RISC p...
FPGA configuration of an alloyed correlated branch predictor used with RISC p...FPGA configuration of an alloyed correlated branch predictor used with RISC p...
FPGA configuration of an alloyed correlated branch predictor used with RISC p...IJECEIAES
 
Control Flow Analysis
Control Flow AnalysisControl Flow Analysis
Control Flow AnalysisEdgar Barbosa
 
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...CSCJournals
 
Principal source of optimization in compiler design
Principal source of optimization in compiler designPrincipal source of optimization in compiler design
Principal source of optimization in compiler designRajkumar R
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco SerafinRiccardo Rigon
 
RBHF_SDM_2011_Jie
RBHF_SDM_2011_JieRBHF_SDM_2011_Jie
RBHF_SDM_2011_JieMDO_Lab
 

Was ist angesagt? (20)

Building a new CTL model checker using Web Services
Building a new CTL model checker using Web ServicesBuilding a new CTL model checker using Web Services
Building a new CTL model checker using Web Services
 
2019 Levenshtein Transformer
2019 Levenshtein Transformer2019 Levenshtein Transformer
2019 Levenshtein Transformer
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...
 
F EATURE S ELECTION USING F ISHER ’ S R ATIO T ECHNIQUE FOR A UTOMATIC ...
F EATURE  S ELECTION USING  F ISHER ’ S  R ATIO  T ECHNIQUE FOR  A UTOMATIC  ...F EATURE  S ELECTION USING  F ISHER ’ S  R ATIO  T ECHNIQUE FOR  A UTOMATIC  ...
F EATURE S ELECTION USING F ISHER ’ S R ATIO T ECHNIQUE FOR A UTOMATIC ...
 
Parallel Algorithm Models
Parallel Algorithm ModelsParallel Algorithm Models
Parallel Algorithm Models
 
facility layout paper
 facility layout paper facility layout paper
facility layout paper
 
An adaptive framework towards analyzing the parallel merge sort
An adaptive framework towards analyzing the parallel merge sortAn adaptive framework towards analyzing the parallel merge sort
An adaptive framework towards analyzing the parallel merge sort
 
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...
Performance Analysis of the Sigmoid and Fibonacci Activation Functions in NGA...
 
PAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph ComputationPAGE: A Partition Aware Engine for Parallel Graph Computation
PAGE: A Partition Aware Engine for Parallel Graph Computation
 
Hybrid Knowledge Bases for Real-Time Robotic Reasoning
Hybrid Knowledge Bases for Real-Time Robotic ReasoningHybrid Knowledge Bases for Real-Time Robotic Reasoning
Hybrid Knowledge Bases for Real-Time Robotic Reasoning
 
Krml203
Krml203Krml203
Krml203
 
FPGA configuration of an alloyed correlated branch predictor used with RISC p...
FPGA configuration of an alloyed correlated branch predictor used with RISC p...FPGA configuration of an alloyed correlated branch predictor used with RISC p...
FPGA configuration of an alloyed correlated branch predictor used with RISC p...
 
Control Flow Analysis
Control Flow AnalysisControl Flow Analysis
Control Flow Analysis
 
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...
Unconstrained Optimization Method to Design Two Channel Quadrature Mirror Fil...
 
Principal source of optimization in compiler design
Principal source of optimization in compiler designPrincipal source of optimization in compiler design
Principal source of optimization in compiler design
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco Serafin
 
Notes part5
Notes part5Notes part5
Notes part5
 
60
6060
60
 
Chapter 6 pc
Chapter 6 pcChapter 6 pc
Chapter 6 pc
 
RBHF_SDM_2011_Jie
RBHF_SDM_2011_JieRBHF_SDM_2011_Jie
RBHF_SDM_2011_Jie
 

Andere mochten auch

Soa test methodology
Soa test methodologySoa test methodology
Soa test methodologyInfosys
 
Static program analysis tools
Static program analysis toolsStatic program analysis tools
Static program analysis toolsKamil Jezek
 
Thesis: Slicing of Java Programs using the Soot Framework (2006)
Thesis:  Slicing of Java Programs using the Soot Framework (2006) Thesis:  Slicing of Java Programs using the Soot Framework (2006)
Thesis: Slicing of Java Programs using the Soot Framework (2006) Arvind Devaraj
 
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...CODE BLUE
 
Signal Processing Introduction using Fourier Transforms
Signal Processing Introduction using Fourier TransformsSignal Processing Introduction using Fourier Transforms
Signal Processing Introduction using Fourier TransformsArvind Devaraj
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis PrimerCoverity
 
Type Annotation for Static Program Analysis
Type Annotation for Static Program AnalysisType Annotation for Static Program Analysis
Type Annotation for Static Program AnalysisYuichi Sakuraba
 
Machine Learning for Q&A Sites: The Quora Example
Machine Learning for Q&A Sites: The Quora ExampleMachine Learning for Q&A Sites: The Quora Example
Machine Learning for Q&A Sites: The Quora ExampleXavier Amatriain
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Leonard Fingerman
 
Build a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeBuild a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeAmazon Web Services
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine LearningRahul Jain
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine LearningLior Rokach
 
10 Lessons Learned from Building Machine Learning Systems
10 Lessons Learned from Building Machine Learning Systems10 Lessons Learned from Building Machine Learning Systems
10 Lessons Learned from Building Machine Learning SystemsXavier Amatriain
 
Introduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningLars Marius Garshol
 

Andere mochten auch (14)

Soa test methodology
Soa test methodologySoa test methodology
Soa test methodology
 
Static program analysis tools
Static program analysis toolsStatic program analysis tools
Static program analysis tools
 
Thesis: Slicing of Java Programs using the Soot Framework (2006)
Thesis:  Slicing of Java Programs using the Soot Framework (2006) Thesis:  Slicing of Java Programs using the Soot Framework (2006)
Thesis: Slicing of Java Programs using the Soot Framework (2006)
 
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
[CB16] Be a Binary Rockstar: An Introduction to Program Analysis with Binary ...
 
Signal Processing Introduction using Fourier Transforms
Signal Processing Introduction using Fourier TransformsSignal Processing Introduction using Fourier Transforms
Signal Processing Introduction using Fourier Transforms
 
Static Analysis Primer
Static Analysis PrimerStatic Analysis Primer
Static Analysis Primer
 
Type Annotation for Static Program Analysis
Type Annotation for Static Program AnalysisType Annotation for Static Program Analysis
Type Annotation for Static Program Analysis
 
Machine Learning for Q&A Sites: The Quora Example
Machine Learning for Q&A Sites: The Quora ExampleMachine Learning for Q&A Sites: The Quora Example
Machine Learning for Q&A Sites: The Quora Example
 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
 
Build a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-timeBuild a Recommendation Engine using Amazon Machine Learning in Real-time
Build a Recommendation Engine using Amazon Machine Learning in Real-time
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
10 Lessons Learned from Building Machine Learning Systems
10 Lessons Learned from Building Machine Learning Systems10 Lessons Learned from Building Machine Learning Systems
10 Lessons Learned from Building Machine Learning Systems
 
Introduction to Big Data/Machine Learning
Introduction to Big Data/Machine LearningIntroduction to Big Data/Machine Learning
Introduction to Big Data/Machine Learning
 

Ähnlich wie Static Analysis of Computer programs

Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation Models
Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation ModelsEvolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation Models
Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation ModelsEditor IJCATR
 
User_42751212015Module1and2pagestocompetework.pdf.docx
User_42751212015Module1and2pagestocompetework.pdf.docxUser_42751212015Module1and2pagestocompetework.pdf.docx
User_42751212015Module1and2pagestocompetework.pdf.docxdickonsondorris
 
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMDESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMsipij
 
CFM Challenge - Course Project
CFM Challenge - Course ProjectCFM Challenge - Course Project
CFM Challenge - Course ProjectKhalilBergaoui
 
A Robust Method Based On LOVO Functions For Solving Least Squares Problems
A Robust Method Based On LOVO Functions For Solving Least Squares ProblemsA Robust Method Based On LOVO Functions For Solving Least Squares Problems
A Robust Method Based On LOVO Functions For Solving Least Squares ProblemsDawn Cook
 
A partial linearization method for the traffic assignment problem.pdf
A partial linearization method for the traffic assignment problem.pdfA partial linearization method for the traffic assignment problem.pdf
A partial linearization method for the traffic assignment problem.pdfAnn Wera
 
7-White Box Testing.ppt
7-White Box Testing.ppt7-White Box Testing.ppt
7-White Box Testing.pptHirenderPal
 
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...csandit
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxaman341480
 
Medical diagnosis classification
Medical diagnosis classificationMedical diagnosis classification
Medical diagnosis classificationcsandit
 
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...cscpconf
 
A Systematic Approach To Probabilistic Pointer Analysis
A Systematic Approach To Probabilistic Pointer AnalysisA Systematic Approach To Probabilistic Pointer Analysis
A Systematic Approach To Probabilistic Pointer AnalysisMonica Franklin
 
Distributed Path Computation Using DIV Algorithm
Distributed Path Computation Using DIV AlgorithmDistributed Path Computation Using DIV Algorithm
Distributed Path Computation Using DIV AlgorithmIOSR Journals
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxmosyrettcc
 
survey of different data dependence analysis techniques
 survey of different data dependence analysis techniques survey of different data dependence analysis techniques
survey of different data dependence analysis techniquesINFOGAIN PUBLICATION
 
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarks
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarksVauhkonenVohraMadaan-ProjectDeepLearningBenchMarks
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarksMumtaz Hannah Vauhkonen
 

Ähnlich wie Static Analysis of Computer programs (20)

19
1919
19
 
Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation Models
Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation ModelsEvolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation Models
Evolving CSP Algorithm in Predicting the Path Loss of Indoor Propagation Models
 
User_42751212015Module1and2pagestocompetework.pdf.docx
User_42751212015Module1and2pagestocompetework.pdf.docxUser_42751212015Module1and2pagestocompetework.pdf.docx
User_42751212015Module1and2pagestocompetework.pdf.docx
 
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORMDESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
DESIGN OF DELAY COMPUTATION METHOD FOR CYCLOTOMIC FAST FOURIER TRANSFORM
 
CFM Challenge - Course Project
CFM Challenge - Course ProjectCFM Challenge - Course Project
CFM Challenge - Course Project
 
A Robust Method Based On LOVO Functions For Solving Least Squares Problems
A Robust Method Based On LOVO Functions For Solving Least Squares ProblemsA Robust Method Based On LOVO Functions For Solving Least Squares Problems
A Robust Method Based On LOVO Functions For Solving Least Squares Problems
 
Parallel programming model
Parallel programming modelParallel programming model
Parallel programming model
 
A partial linearization method for the traffic assignment problem.pdf
A partial linearization method for the traffic assignment problem.pdfA partial linearization method for the traffic assignment problem.pdf
A partial linearization method for the traffic assignment problem.pdf
 
7-White Box Testing.ppt
7-White Box Testing.ppt7-White Box Testing.ppt
7-White Box Testing.ppt
 
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...
CHECKING BEHAVIOURAL COMPATIBILITY IN SERVICE COMPOSITION WITH GRAPH TRANSFOR...
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
 
Medical diagnosis classification
Medical diagnosis classificationMedical diagnosis classification
Medical diagnosis classification
 
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...
MEDICAL DIAGNOSIS CLASSIFICATION USING MIGRATION BASED DIFFERENTIAL EVOLUTION...
 
A Systematic Approach To Probabilistic Pointer Analysis
A Systematic Approach To Probabilistic Pointer AnalysisA Systematic Approach To Probabilistic Pointer Analysis
A Systematic Approach To Probabilistic Pointer Analysis
 
Distributed Path Computation Using DIV Algorithm
Distributed Path Computation Using DIV AlgorithmDistributed Path Computation Using DIV Algorithm
Distributed Path Computation Using DIV Algorithm
 
C0431320
C0431320C0431320
C0431320
 
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docxPaper Analysis Essay The 5-page Paper You Submit Must At L.docx
Paper Analysis Essay The 5-page Paper You Submit Must At L.docx
 
Bh36352357
Bh36352357Bh36352357
Bh36352357
 
survey of different data dependence analysis techniques
 survey of different data dependence analysis techniques survey of different data dependence analysis techniques
survey of different data dependence analysis techniques
 
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarks
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarksVauhkonenVohraMadaan-ProjectDeepLearningBenchMarks
VauhkonenVohraMadaan-ProjectDeepLearningBenchMarks
 

Mehr von Arvind Devaraj

Deep learning for NLP and Transformer
 Deep learning for NLP  and Transformer Deep learning for NLP  and Transformer
Deep learning for NLP and TransformerArvind Devaraj
 
NLP using transformers
NLP using transformers NLP using transformers
NLP using transformers Arvind Devaraj
 
Career options for CS and IT students
Career options for CS and IT studentsCareer options for CS and IT students
Career options for CS and IT studentsArvind Devaraj
 
Yourstory Android Workshop
Yourstory Android WorkshopYourstory Android Workshop
Yourstory Android WorkshopArvind Devaraj
 
Android High performance in GPU using opengles and renderscript
Android High performance in GPU using opengles and renderscriptAndroid High performance in GPU using opengles and renderscript
Android High performance in GPU using opengles and renderscriptArvind Devaraj
 
OpenGLES Android Graphics
OpenGLES Android GraphicsOpenGLES Android Graphics
OpenGLES Android GraphicsArvind Devaraj
 
AIDL - Android Interface Definition Language
AIDL  - Android Interface Definition LanguageAIDL  - Android Interface Definition Language
AIDL - Android Interface Definition LanguageArvind Devaraj
 
NDK Programming in Android
NDK Programming in AndroidNDK Programming in Android
NDK Programming in AndroidArvind Devaraj
 
Google Cloud Messaging
Google Cloud MessagingGoogle Cloud Messaging
Google Cloud MessagingArvind Devaraj
 
OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android Arvind Devaraj
 
Sorting (introduction)
 Sorting (introduction) Sorting (introduction)
Sorting (introduction)Arvind Devaraj
 
Data structures (introduction)
 Data structures (introduction) Data structures (introduction)
Data structures (introduction)Arvind Devaraj
 
Graphics programming in open gl
Graphics programming in open glGraphics programming in open gl
Graphics programming in open glArvind Devaraj
 

Mehr von Arvind Devaraj (20)

Deep learning for NLP and Transformer
 Deep learning for NLP  and Transformer Deep learning for NLP  and Transformer
Deep learning for NLP and Transformer
 
NLP using transformers
NLP using transformers NLP using transformers
NLP using transformers
 
Nodejs presentation
Nodejs presentationNodejs presentation
Nodejs presentation
 
Career hunt pitch
Career hunt pitchCareer hunt pitch
Career hunt pitch
 
Career options for CS and IT students
Career options for CS and IT studentsCareer options for CS and IT students
Career options for CS and IT students
 
Careerhunt ebook
Careerhunt ebookCareerhunt ebook
Careerhunt ebook
 
Hyperbook
HyperbookHyperbook
Hyperbook
 
Yourstory Android Workshop
Yourstory Android WorkshopYourstory Android Workshop
Yourstory Android Workshop
 
Android High performance in GPU using opengles and renderscript
Android High performance in GPU using opengles and renderscriptAndroid High performance in GPU using opengles and renderscript
Android High performance in GPU using opengles and renderscript
 
OpenGLES Android Graphics
OpenGLES Android GraphicsOpenGLES Android Graphics
OpenGLES Android Graphics
 
Broadcast Receiver
Broadcast ReceiverBroadcast Receiver
Broadcast Receiver
 
AIDL - Android Interface Definition Language
AIDL  - Android Interface Definition LanguageAIDL  - Android Interface Definition Language
AIDL - Android Interface Definition Language
 
NDK Programming in Android
NDK Programming in AndroidNDK Programming in Android
NDK Programming in Android
 
Google Cloud Messaging
Google Cloud MessagingGoogle Cloud Messaging
Google Cloud Messaging
 
OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android OpenGLES - Graphics Programming in Android
OpenGLES - Graphics Programming in Android
 
Operating system
Operating systemOperating system
Operating system
 
Sorting (introduction)
 Sorting (introduction) Sorting (introduction)
Sorting (introduction)
 
Data structures (introduction)
 Data structures (introduction) Data structures (introduction)
Data structures (introduction)
 
Graphics programming in open gl
Graphics programming in open glGraphics programming in open gl
Graphics programming in open gl
 
Computer Systems
Computer SystemsComputer Systems
Computer Systems
 

Kürzlich hochgeladen

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Static Analysis of Computer programs

  • 1. 1 Introduction The problem of slicing requires us to solve data dependencies and control de-pendencies. Finding data dependencies require us to solve the problem of reach-ing definitions. Control dependencies require finding dominance frontiers. The problem of aliasing has to to solved for computing correct data dependencies. Each of these individual problems can be viewed as instance of the more general problem of program analysis. 2 Program Analysis Program analysis is the method of statically computing properties of a program. Program analysis is useful for performing optimizations. There can be many interesting properties that can be queried about programs. [?]. In particular for slicing we are interested in the following. 1. What definitions of a variable can reach a particular program point 2. What objects can a reference variable point to 3. What types can a receiver variable point to 4. Can the pointer p point to null 5. For computing control dependence information, dominator information is needed 6. What variables can be modified or referenced by a procedure The actual paths that are taken during execution is difficult to determine. So it is difficult to give precise answers to many of these questions related to program analysis, approximate solutions are computed. These solutions are conservative in the sense, they err on the safer side. They overestimate the number of definitions reaching a program point or the objects the reference variable can point to. The initial methods of performing data flow analysis was done by executing the program symbolically tracing through all control flow paths collecting in-formation about dataflow values. This is computationally expensive and there can be problem of termination if dataflow values keep alternating. Monotone data flow frameworks overcome these problems by 1
  • 2. 1. putting a partial order on the abstract data values such that they change in the same direction during abstract interpretation , reducing termination problems. 2. If two control flow paths merge, we have to assume conservative informa-tion that holds good about the abstract values along both the paths. A semilattice L is used to represent the abstract values because the meet operation gives us exactly this information. 3. To every node v in the CFG, we assign a variable [[v]] ranging over the elements of L. 4. for every point in the program ,an equation that relates the value of the variable of the corresponding node to those of other nodes (typically the neighbors). To guarantee termination, two useful limitations are made on the general framework, which enforces all the transfer functions to be monotone and the height of the lattice to be finite. Intuitively, this means that the transfer function can only climb up and since the height is finite, it can at most reach the top in the end and thus have to stabilize. This framework is called monotone data flow analysis framework and its formal definition is listed below With each node a function is associated which maps each value in the semi-lattice to another value in the semilattice. The set of such functions at every node in the program forms a system of dataflow equations. A fixed point solu-tion to these equations gives the conservative information that can be assumed to be valid at every node in the program. For dataflow frameworks the set of functions F has to satisfy the following properties. 1. Closedness under composition is important because we can summarize the effects of a sequence statements without leaving the function space. 2. Identity function has to be there to take into account of empty basic blocks. 3. Closed under pointwise meet, if h(x) = f(x) ^ g(x) then h 2 F. This is necessary because h can represent the effect of convergence of two control flow paths. 2
  • 3. 4. Monotonicity of functions in F guarantee the existence of fixed point so-lution. Distributivity 2.1 Characterization of data flow frameworks In presence of loops, the transfer function f has to be applied multiple times to summarize the effect of loops. If f describes dataflow effect of once around a cyclic path, then f represents the effect of a loop where the number of itera-tions is apriori indeterminate. f is said to be k-bounded , if the solution reaches a fixedpoint values before the k-th pass around the loop. For the classical bitvector problems ,the transfer function is given by f(x) = GEN + X − KILL, thus f f = f, making them 2-bounded. Frameworks for which f f = f hold true are called fast frameworks. In summary, a dataflow framework is characterized by 1. Algebraic properties of functions in F ( monotonicity, distributivity) 2. Finiteness properties of functions in F( boundedness, fastness, rapidity) 3. Finiteness properties of lattice L (height) 4. Partitionability of L and F There is an important class of k-bounded partionable problems called bitvector problems. 2.2 Dataflow Analysis Examples Dataflow analysis techniques are used for the discovery of compile time code improvements. see p.12. JFL for dataflow frameworks defn Reaching Definitions The reaching definitions problem asks for each node (program point) n, which as-signments might have determined the values of the program variables at n. It uses (}(Asgn),,[, Asgn, ;) for property lattice. 3
  • 4. 2.3 Solution Procedures The solution to a dataflow problem 2.3.1 Meet over all paths solution A transfer function is associated with every basic block. We can define a trans-fer function associated with a path P given by x0 ! x1 ! x2.... ! xn as compositions of transfer functions associated with individual basic blocks. The meet over all paths solution is given by If all paths are executable, then MOP solution is the best statically deter-minable solution. However it is infeasible to determine those paths that are statically executed. The inaccuracy results from the fact additional infeasible paths may be included. Thus the MOP solution is a conservative approximation to the real solution. 2.3.2 Maximal Fixed Point solution The MFP solution is given by Though MOP is the best possible solution, it has been proved that a gen-eral algorithm to compute MOP solution does not exist [?]. Intuitively this is due to presence of loops which leads to infinite number of paths. MFP solu-tion sacrifices precision for computability. MFP solution is less precise because it considers only the effect on flow values by adjacent neighbors. In case of distributive framework both the solutions are identical. 2.3.3 Iterative Methods The iterative method solves the system of equations by initializing the node variables to some conservative values and successively recomputing them till a fixed point is reached. The naive implementation of this is called chaotic 4
  • 5. iteration. Since this is not efficient clever iterative algorithms like worklist, roundrobin, node listing are used. Kam Ullman showed that a class of problems that a round robin algorithm visiting nodes in reverse post order can solve in d(G)+3 passes over the graph G. d(G) is the depth of the graph, the maximum no of edges that can occur on any acyclic path in G. 2.3.4 Elimination Methods When the CFG is reducible, which means that there are no multiple entry loops, elimination algorithm is preferred because it is usually more efficient than iterative algorithms. The central idea of elimination method is to represent all paths from start node to a particular node as a regular expression. We can get a high level summary function fre corresponding to the regular function by replacing each node with corresponding transfer function, the concatenation with function composition , the * operator with function closures, the union with meet operation. Thus the data value at a node is fre(init). The requirement of reducibility of the CFG assures that the summary function could be obtained from the above operations. Since a regular expression is used to represent a set of paths, elimination method is also called path algebra based approach. Elimination methods exploit the structural properties of the graph. The flow graph is reduced to single node using a series of graph transformations. The data flow properties of a node in a region are determined from dataflow properties of the region’s header node. 3 Other Methods of Program Analysis 1. Abstract Interpretation 2. Constraint based analysis Many data flow analysis problems like reaching definitions can be efficiently solved using abstract interpretation. For other problems like pointer analysis, type inference , constraint based approach is more suitable. Using Data flow analysis, many interesting pieces of information cannot be gathered because data flow analysis does not make use of the semantic of the 5
  • 6. programming language’s operators. Abstract Interpretation Abstract interpretation amount to executing the program on the abstract values instead of actual values. For example, the abstract values for integers can the their signs or the property of being even/odd. Since concrete computa-tion is not performed , the results inferred by abstract interpretation can only be approximate. Another reason for approximation is that abstract interpre-tation computes conservative information that are valid in all control flow paths. Abstract interpretation is a theory of semantics approximation. The idea of abstract interpretation is to create a new semantic of the programming language so that the semantic always terminates and the store for every program points contains a superset of the values that are possible in the actual semantic, for every possible input. Since in this new semantic a store does not contain a single value for a variable but a set (or interval) of possible values, the evaluation of boolean and arithmetic expressions must be redefined. Abstract interpretation is a very powerful program analysis method. It uses information on the programming language’s semantic and can detect possible runtime errors, like division by zero or variable overflow. Since abstract inter-pretation can be computationally very expensive it must be taken care choose an appropriate value domain and appropiate heuristic for loop termination to ensure feasabillity. For example, in the following program, determining the actual values x can take is not feasible. However, if we are interested in abstract values of x say odd, even we can determine that x can have only even values. Abstract interpretation determines this information. void f() { int x=2; while(...) { // what values x can have here x=x+2; } } 6
  • 7. The most common application of abstract interpretation for solving dataflow problems. Set based analysis In set based analysis , sets of values are associated with a variable. The major difference between set based analysis and abstract interpretation is that set based analysis does not employ an abstract domain to approximate the underlying domain of computation. In set based analysis, the approximation occurs because all dependencies between variables are ignored. For example, if at some point in the program , the environment [x ! 1, y ! 2] and [x ! 3, y ! 4] can be encountered, then set based analysis will conclude that x can have values 1,3 and y can have values 2,4. The dependency ”x is 1 when y is 2” is lost. In constraint based analysis, the properties to be computed are expressed as set constraints. In the following example, the property to be computed is the set of values a variable can have at runtime. if(...) { x=3; } else { x=6; } // x can have {3,6} print (x) These sets need not only represent integers as in the above example. The sets can represents points to sets of a variable or types of receiver variable. This ”set based” approach to program analysis consists of three phases. The first step is to label the interested program points, which may be terms, expressions or program variables. The second step is to associate with each label a variable which denotes the abstract values at the point. The one can derive a set of constraints on these variables. In the final step, these constraints are solved to find their minimum solution (this solving process is the main computational part of the analysis). To solve the constraints, the usual procedure is to represent each set expres-sion as a node and each constraint as a directed edge. A transitive closure on 7
  • 8. this graph gives all possible constraints that can be inferred. Data flow analysis can be viewed as set based analysis. For example consider live variable analysis for C programs. 1. domain : set of program variables 2. Variables : Sin, Sout 3. Constants : Sdef , Suse 4. Constraints : Sin = Suse [ (Sout − Sdef ) S 5. Sout = X2succ(S) Xin 3.1 Interprocedural Analysis - Context Sensitivity 3.1.1 Functional Approach The idea behind functional approach is same as that of elimination algorithms, where we used a large transfer function to summarize the effect of a region. The set of valid paths in the intraprocedural case can be represented by regular expression. In interprocedural cases, the calls and returns have to be matched. The set of valid paths is given by context free grammar. A non terminal in the context free grammar represents the procedure. It is possible to compute a large function corresponding to the non terminal which summarizes the effects of those paths produced by the non terminal . example 3.1.2 Call String Approach The idea behind call string approach is the contents of the stack is an important element to distinguish between dataflow information. The context is usually the current call stack. The use of call string guarantee that dataflow values from invalid paths are not considered. The length of call string may be unbounded , so k-bounded call strings are used. 8