Interprocedural Analysis

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 318 Experts worldwide ranked by ideXlab platform

Krishnendu Chatterjee - One of the best experts on this subject based on the ideXlab platform.

  • Faster Algorithms for Dynamic Algebraic Queries in Basic RSMs with Constant Treewidth
    ACM Transactions on Programming Languages and Systems, 2019
    Co-Authors: Krishnendu Chatterjee, Rasmus Ibsen-jensen, Prateesh Goyal, Amir Kafshdar Goharshady, Andreas Pavlogiannis
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, and so on. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, and so on. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in an important algorithmic distinction between the resource usage of the one-time preprocessing vs for each individual query. The second aspect we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing but can answer subsequent queries significantly faster as compared to the current algorithmic solutions for Interprocedural dataflow Analysis. We have also implemented our algorithms and evaluated their performance for performing on-demand Interprocedural dataflow Analysis on various domains, such as for live variable Analysis and reaching definitions, on a standard benchmark set. Our experimental results align with our theoretical statements and show that after a lightweight preprocessing, on-demand queries are answered much faster than the standard existing algorithmic approaches.

  • SAC - The treewidth of smart contracts
    Proceedings of the 34th ACM SIGAPP Symposium on Applied Computing, 2019
    Co-Authors: Krishnendu Chatterjee, Amir Kafshdar Goharshady, Ehsan Kafshdar Goharshady
    Abstract:

    Smart contracts are programs that are stored and executed on the Blockchain and can receive, manage and transfer money (cryptocurrency units). Two important problems regarding smart contracts are formal Analysis and compiler optimization. Formal Analysis is extremely important, because smart contracts hold funds worth billions of dollars and their code is immutable after deployment. Hence, an undetected bug can cause significant financial losses. Compiler optimization is also crucial, because every action of a smart contract has to be executed by every node in the Blockchain network. Therefore, optimizations in compiling smart contracts can lead to significant savings in computation, time and energy. Two classical approaches in program Analysis and compiler optimization are intraprocedural and Interprocedural Analysis. In intraprocedural Analysis, each function is analyzed separately, while Interprocedural Analysis considers the entire program. In both cases, the analyses are usually reduced to graph problems over the control flow graph (CFG) of the program. These graph problems are often computationally expensive. Hence, there has been ample research on exploiting structural properties of CFGs for efficient algorithms. One such well-studied property is the treewidth, which is a measure of tree-likeness of graphs. It is known that intraprocedural CFGs of structured programs have treewidth at most 6, whereas the Interprocedural treewidth cannot be bounded. This result has been used as a basis for many efficient intraprocedural analyses. In this paper, we explore the idea of exploiting the treewidth of smart contracts for formal Analysis and compiler optimization. First, similar to classical programs, we show that the intraprocedural treewidth of structured Solidity and Vyper smart contracts is at most 9. Second, for global Analysis, we prove that the Interprocedural treewidth of structured smart contracts is bounded by 10 and, in sharp contrast with classical programs, treewidth-based algorithms can be easily applied for Interprocedural Analysis. Finally, we supplement our theoretical results with experiments using a tool we implemented for computing treewidth of smart contracts and show that the treewidth is much lower in practice. We use 36,764 real-world Ethereum smart contracts as benchmarks and find that they have an average treewidth of at most 3.35 for the intraprocedural case and 3.65 for the Interprocedural case.

  • A.: Faster algorithms for algebraic path properties in recursive state machines with constant treewidth
    2016
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant prop-agation, etc. Recursive state machines (RSMs) are standard mod-els for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow anal-ysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural analy-sis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider pos-sible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource us

  • quantitative Interprocedural Analysis
    Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

  • POPL - Quantitative Interprocedural Analysis
    Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

Andreas Pavlogiannis - One of the best experts on this subject based on the ideXlab platform.

  • Faster Algorithms for Dynamic Algebraic Queries in Basic RSMs with Constant Treewidth
    ACM Transactions on Programming Languages and Systems, 2019
    Co-Authors: Krishnendu Chatterjee, Rasmus Ibsen-jensen, Prateesh Goyal, Amir Kafshdar Goharshady, Andreas Pavlogiannis
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, and so on. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, and so on. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in an important algorithmic distinction between the resource usage of the one-time preprocessing vs for each individual query. The second aspect we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing but can answer subsequent queries significantly faster as compared to the current algorithmic solutions for Interprocedural dataflow Analysis. We have also implemented our algorithms and evaluated their performance for performing on-demand Interprocedural dataflow Analysis on various domains, such as for live variable Analysis and reaching definitions, on a standard benchmark set. Our experimental results align with our theoretical statements and show that after a lightweight preprocessing, on-demand queries are answered much faster than the standard existing algorithmic approaches.

  • A.: Faster algorithms for algebraic path properties in recursive state machines with constant treewidth
    2016
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant prop-agation, etc. Recursive state machines (RSMs) are standard mod-els for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow anal-ysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural analy-sis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider pos-sible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource us

  • quantitative Interprocedural Analysis
    Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

  • POPL - Quantitative Interprocedural Analysis
    Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

  • POPL - Faster Algorithms for Algebraic Path Properties in Recursive State Machines with Constant Treewidth
    Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, etc. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource usage of the one-time preprocessing vs for each individual query. The second aspect that we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing, but can answer subsequent queries significantly faster as compared to the current best-known solutions for several important problems, such as Interprocedural reachability and shortest path. We provide a prototype implementation for Interprocedural reachability and intraprocedural shortest path that gives a significant speed-up on several benchmarks.

Yaron Velner - One of the best experts on this subject based on the ideXlab platform.

  • quantitative Interprocedural Analysis
    Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

  • POPL - Quantitative Interprocedural Analysis
    Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Yaron Velner
    Abstract:

    We consider the quantitative Analysis problem for Interprocedural control-flow graphs (ICFGs). The input consists of an ICFG, a positive weight function that assigns every transition a positive integer-valued number, and a labelling of the transitions (events) as good, bad, and neutral events. The weight function assigns to each transition a numerical value that represents a measure of how good or bad an event is. The quantitative Analysis problem asks whether there is a run of the ICFG where the ratio of the sum of the numerical weights of good events versus the sum of weights of bad events in the long-run is at least a given threshold (or equivalently, to compute the maximal ratio among all valid paths in the ICFG). The quantitative Analysis problem for ICFGs can be solved in polynomial time, and we present an efficient and practical algorithm for the problem. We show that several problems relevant for static program Analysis, such as estimating the worst-case execution time of a program or the average energy consumption of a mobile application, can be modeled in our framework. We have implemented our algorithm as a tool in the Java Soot framework. We demonstrate the effectiveness of our approach with two case studies. First, we show that our framework provides a sound approach (no false positives) for the Analysis of inefficiently-used containers. Second, we show that our approach can also be used for static profiling of programs which reasons about methods that are frequently invoked. Our experimental results show that our tool scales to relatively large benchmarks, and discovers relevant and useful information that can be used to optimize performance of the programs.

Prateesh Goyal - One of the best experts on this subject based on the ideXlab platform.

  • Faster Algorithms for Dynamic Algebraic Queries in Basic RSMs with Constant Treewidth
    ACM Transactions on Programming Languages and Systems, 2019
    Co-Authors: Krishnendu Chatterjee, Rasmus Ibsen-jensen, Prateesh Goyal, Amir Kafshdar Goharshady, Andreas Pavlogiannis
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, and so on. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, and so on. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in an important algorithmic distinction between the resource usage of the one-time preprocessing vs for each individual query. The second aspect we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing but can answer subsequent queries significantly faster as compared to the current algorithmic solutions for Interprocedural dataflow Analysis. We have also implemented our algorithms and evaluated their performance for performing on-demand Interprocedural dataflow Analysis on various domains, such as for live variable Analysis and reaching definitions, on a standard benchmark set. Our experimental results align with our theoretical statements and show that after a lightweight preprocessing, on-demand queries are answered much faster than the standard existing algorithmic approaches.

  • A.: Faster algorithms for algebraic path properties in recursive state machines with constant treewidth
    2016
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant prop-agation, etc. Recursive state machines (RSMs) are standard mod-els for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow anal-ysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural analy-sis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider pos-sible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource us

  • POPL - Faster Algorithms for Algebraic Path Properties in Recursive State Machines with Constant Treewidth
    Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 2015
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, etc. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is fixed as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource usage of the one-time preprocessing vs for each individual query. The second aspect that we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing, but can answer subsequent queries significantly faster as compared to the current best-known solutions for several important problems, such as Interprocedural reachability and shortest path. We provide a prototype implementation for Interprocedural reachability and intraprocedural shortest path that gives a significant speed-up on several benchmarks.

  • Faster Algorithms for Algebraic Path Properties in RSMs with Constant Treewidth
    arXiv: Programming Languages, 2014
    Co-Authors: Krishnendu Chatterjee, Andreas Pavlogiannis, Rasmus Ibsen-jensen, Prateesh Goyal
    Abstract:

    Interprocedural Analysis is at the heart of numerous applications in programming languages, such as alias Analysis, constant propagation, etc. Recursive state machines (RSMs) are standard models for Interprocedural Analysis. We consider a general framework with RSMs where the transitions are labeled from a semiring, and path properties are algebraic with semiring operations. RSMs with algebraic path properties can model Interprocedural dataflow Analysis problems, the shortest path problem, the most probable path problem, etc. The traditional algorithms for Interprocedural Analysis focus on path properties where the starting point is \emph{fixed} as the entry point of a specific method. In this work, we consider possible multiple queries as required in many applications such as in alias Analysis. The study of multiple queries allows us to bring in a very important algorithmic distinction between the resource usage of the \emph{one-time} preprocessing vs for \emph{each individual} query. The second aspect that we consider is that the control flow graphs for most programs have constant treewidth. Our main contributions are simple and implementable algorithms that support multiple queries for algebraic path properties for RSMs that have constant treewidth. Our theoretical results show that our algorithms have small additional one-time preprocessing, but can answer subsequent queries significantly faster as compared to the current best-known solutions for several important problems, such as Interprocedural reachability and shortest path. We provide a prototype implementation for Interprocedural reachability and intraprocedural shortest path that gives a significant speed-up on several benchmarks.

Peter Thiemann - One of the best experts on this subject based on the ideXlab platform.

  • Interprocedural Analysis with lazy propagation
    Static Analysis Symposium, 2010
    Co-Authors: Simon Holm Jensen, Anders Moller, Peter Thiemann
    Abstract:

    We propose lazy propagation as a technique for flow- and context-sensitive Interprocedural Analysis of programs with objects and first-class functions where transfer functions may not be distributive. The technique is described formally as a systematic modification of a variant of the monotone framework and its theoretical properties are shown. It is implemented in a type Analysis tool for JavaScript where it results in a significant improvement in performance.

  • SAS - Interprocedural Analysis with lazy propagation
    Static Analysis, 2010
    Co-Authors: Simon Holm Jensen, Anders Moller, Peter Thiemann
    Abstract:

    We propose lazy propagation as a technique for flow- and context-sensitive Interprocedural Analysis of programs with objects and first-class functions where transfer functions may not be distributive. The technique is described formally as a systematic modification of a variant of the monotone framework and its theoretical properties are shown. It is implemented in a type Analysis tool for JavaScript where it results in a significant improvement in performance.