His interests are in the area of programming languages and program analysis, with a focus on verification. A flexible approach to interprocedural data flow analysis. An asynchronous program is one that contains procedure calls which are not immediately executed from the callsite, but stored and dispatched in a nondeterministic order by an external scheduler at a later point. We apply this paradigm to the following two undecidable problems and derive partial verification techniques.
Interprocedural analysis of asynchronous programs ranjit jhala. Figure 1 shows an asynchronous program plb culled from an eventdriven load balancer. Dec 16, 2019 interprocedural optimization ipo is an automatic, multistep process that allows the compiler to analyze your code to determine where you can benefit from specific optimizations. Asynchronous programming has been with us from the very early days of computing because of the need to make the best use of the hardware.
Interprocedural analysis gathering information about the whole program instead of a single procedure interprocedural optimization program transformation that involves more than one procedure in the program uses interprocedural analysis. Asynchronous programming is a means of parallel programming in which a unit of work runs separately from the main application thread and notifies the calling thread of its completion, failure or progress. Ranjit jhala rupak majumdar interprocedural analysis of. Ahmed bouajjani, javier esparza, stefan schwoon, and jan strejcek. In later phases, representations of the effects of the asynchronous.
Pdf interprocedural shape analysis for recursive programs. Interprocedural analysis department of computer science. Interprocedural analysis gathering information about the whole program instead of a single procedure examples. When you run interprocedural analysis through the ipa option, ipa performs optimizations across the entire program. Wehave implemented the algorithm on top of b last, thereby obtaining the first safety verification tool for unbounded asynchronous programs. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as. Vasco is a framework for performing precise interprocedural data flow analysis using value sensitive contexts. A key challenge in designing such analyses is identifying a concurrency model which does. The effectiveness of these transformations is further increased by interprocedural analysis of parallel programs. Abstract an asynchronous program is one that contains procedure callswhich are not immediately executed from the callsite, but stored and dispatched in a nondeterministic order by an external scheduler at a later point.
The goal of this thesis is to improve an existing interprocedural analysis for asynchronous programs by considering global boolean ag values to make it pathsensitive and eliminate invalid data ow. Interprocedural data flow analysis in soot using value contexts you can use these classes directly with any program analysis. Gives insight into program analysis complexity issues 27. Gather information across multiple procedures typically across the entire program. You may be wondering when you should use asynchronous programming and what are its benefits and problem points. The interprocedural analysis and automatic parallelization of. Interprocedural analysis colorado state university. Asynchronous programs with prioritized taskbuffers. A mayhappeninparallel mhp analysis computes pairs of program points that may execute in parallel across different distributed components.
Citeseerx document details isaac councill, lee giles, pradeep teregowda. A flexible approach to interprocedural data flow analysis and. Us7634b2 software tool with modeling of asynchronous. Resourceaware program analysis using observation sequences drs. An interprocedural framework for placement of asynchronous. Ranjit jhala rupak majumdar interprocedural analysis of asynchronous programs. The compiler may apply the following optimizations. Abstract an interprocedural analysis is precise if it is. Interprocedural analysis of asynchronous programs deepdyve. Parallelizing topdown interprocedural analyses uw computer.
Cs553 lecture interprocedural analysis and optimization 10 interprocedural analysis vs. Interprocedural optimization ipo is a collection of compiler techniques used in computer programming to improve performance in programs containing many frequently used functions of small or medium length. The framework classes are present in the package vasco and are described in the paper. Variably interprocedural analysis variably interprocedural analysis operates on a con.
Published byphilip fields modified over 4 years ago. Interprocedural analysis of asynchronous programs citeseerx. Can use this information to improve intraprocedural analyses and optimization e. Cs 380c lecture 22 5 interprocedural analysis why dont many compilers use ip analysis. J reachability analysis of multithreaded software with asynchronous communication. His dissertation addresses the challenges of verifying concurrent programs as well as machine code. Mayhappeninparallel analysis for asynchronous programs. A new approach to data flow analysis of procedural programs and programs with recursive data structures is described. We provide a formal model underlying asynchronous programs and study verification problems for this model. We formalize the problem of interprocedural dataow analysis for asynchronous programs as aifds problems, a generalization of the ifds problems for interprocedural dataflow analysis.
Asynchronous programming, analysis and testing with state. Programs in such a setting can be modeled by automata with counters that keep track of the number of pending asynchronous calls for each function, as well as a call stack for synchronous recursive computation. Interprocedural optimization interprocedural analysis gather information across multiple procedures typically across the entire program use this information to improve intraprocedural analyses and optimization e. For intraprocedural analysis, it is usually the set of all methods in the program. The gnu gcc compiler has function inlining, which is turned on by default at o3, and can be turned on manually passing the switch finlinefunctions at compile time. A similar problem arises in interprocedural analysis of sequential programs.
Deciding branching time properties for asynchronous programs. But recently it has become almost the standard programming paradigm. We consider the algorithmic analysis of asynchronous software systems as a means for building reliable software. Asynchronous programming is a paradigm that supports asynchronous function calls in addition to synchronous function calls. We show that the safety verification problem for finitedata asynchronous programs. Algorithmic verification of asynchronous programs acm. Boolean analysis for pathsensitive interprocedural. An interprocedural framework for placement of asynchronous io operations. The program has no locals and no parameters, just global variables. Interprocedural analysis of asynchronous programs core. We give an algorithm for computing the precise meetovervalidpaths solution for any aifds instance, as well as a demanddriven algorithm for solving the. Boolean analysis for pathsensitive interprocedural analyses. In previous work, qadeer and rehof 23 showed that contextbounded analysis is decidable for recursive programs under a finitestate abstraction of program. Traditionally, support for interprocedural programs in shape analysis is either non existent or deficient, suffering from limitations in the kind of program that can be analyzed, poor overall.
Interprocedural analysis and the verification of concurrent programs by akash lal a dissertation submitted in partial ful. We present an extended approach to the interprocedural analysis of asynchronous programs by taking the following steps. Variably interprocedural program analysis for runtime. Pdf reachability analysis of multithreaded software with. We formalize the problem of interprocedural dataow analysis for asynchronous programs. The the wisconsin program slicing tool is a software system that supports operations on c programs, including backward slicing, forward slicing, and chopping toplas90, fse94, fse95b, which can help the user gain an understanding of what a program does and how it works. For whole program analysis this set is the singleton set containing the entry point of the program.
The method depends on simulation of the interpreter for the subject programming language using a retrieval function to approximate a program s data structures. Ipo differs from other compiler optimization because it analyzes the entire program. Safety verification of asynchronous pushdown systems with. Interprocedural optimization interprocedural analysis gather information across multiple procedures typically across the entire program can use this information to improve intraprocedural analyses and optimization e. We formalize the problem of interprocedural dataow analysis for asynchronous programs as aifds problems. We accomplish this by a code to code translation that introduces k1 copies of shared variables. The flag to enable interprocedural optimizations for a single file is ip, the flag to enable interprocedural optimization across all files in the program is ipo. A classical result by ramalingam about synchronizationsensitive interprocedural program analysis implies that. Execution begins in the procedure main which makes an asynchronous. A read is counted each time someone views a publication summary such as the title, abstract, and list of authors, clicks on a figure, or views or downloads the fulltext. Static analysis for asynchronous javascript programs.
Reachability analysis of multithreaded software with asynchronous communication. This class extends previous computational models studied in the context of asynchronous programs, and enables the safety verification of a large class of message passing programs. Interprocedural analysis of asynchronous programs request pdf. We formalize the problem of interprocedu ral datao w analysis for asynchronous programs as aifds prob lems, a generalization of the ifds problems for interprocedural datao w analysis. Demand interprocedural program analysis using logic.
Writing correct asynchronous programs is hard because the use of callbacks, while efficient, obscures program control flow. To that end, this paper introduces three code transformations for strength reduction of critical sections. We present an extended approach to the interprocedural analysis of asynchronous programs. First, in section 4, we reduce asynchronous programs with multiple taskbuffers to asynchronous programs with a single taskbuffer, while preserving task priorities. Programs in such a setting can be modeled by automata with counters that keep track of the number of pending asynchronous. In interprocedural analysis problems, not all of the paths in the graphs that represent the program. The porting and subsequent analysis and testing revealed. Static data race detection for concurrent programs with. We introduceprocedure strings andstack configurations as a framework in which to reason about interprocedural sideeffects and object lifetimes, and develop a system of interprocedural analysis, using abstract interpretation, that is used in the dependence analysis and memory management of scheme programs.
The method depends on simulation of the interpreter for the subject programming language using a retrieval function to approximate a programs. A compiler that forms an intermediate representation of a program using a flow graph with less than all possible edges used to model asynchronous transfers within the program. Dataflow analysis for asynchronous programs wherein threads can fork off other threads but where threads are not allowed to communicate with each other has also been explored, 5 and was shown. Interprocedural analysis of asynchronous programs proceedings of. Interprocedural strength reduction of critical sections in. This information has been proven to be essential to infer both safety properties e. We formalize the problem of interprocedural dataflow analysis for asynchronous programs. This paper considers the analysis of concurrent programs with sharedmemory and interleaving. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as aifds problems.
March 4, 2015 interprocedural analysis 5 interprocedural analysis vs. Our bounding parameter does not limit the number of. We describe a novel technique for bounded analysis of asynchronous messagepassing programs with ordered message queues. May 27, 2009 his interests are in the area of programming languages and program analysis, with a focus on verification. Were upgrading the acm dl, and would like your input. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as aifds problems, a generalization of the. In one phase, the flow graph is formed without modeling asynchronous transfers. Our algorithm can be easily implemented on top of any existing interprocedural dataflow analysis framework.
Cs553 lecture interprocedural analysis 5 interprocedural analysis vs. The ideas presented here are from a paper called two approaches to interprocedural analysis, by micha sharir and amir pnueli, in a book called program flow analysis, theory and applications edited by s. Interprocedural analysis and the verification of concurrent. You want to have a cup of coffee and you walk up to a coffee machine like one that i have in my office. In proceedings of the 25th international conference on foundations of software. Broadly, interprocedural analyses can be classified as either top. Interprocedural data flow analysis in soot using value contexts. Separate compilation with ip analysis requires recompilation analysis.
Ppt ranjit jhala rupak majumdar powerpoint presentation. Mayhappeninparallel analysis for asynchronous programs with interprocedural synchronization elviraalbert,samirgenaim,andpablogordillo complutenseuniversityofmadriducm,spain abstract. Interprocedural analysis of asynchronous programs ranjit jhala rupak majumdar conclusions boost your pet dataflow analysis to work on asynchronous. Analysis of recursive programs in the presence of concurrency and shared memory is undecidable. Interprocedural analysis of asynchronous programs \lambda. Topics include program representations, abstract interpretation, typebased and constraintbased analysis, approaches to interprocedural analysis, counterexampleguided abstraction. Interprocedural analysis of concurrent programs under a context. Interprocedural analysis uses calling relationships among procedures enables more precise analysis information 2. This course provides an overview of the state of the art in program analysis and recent research in the area. His dissertation addresses the challenges of verifying concurrent programs as. Is inlining an alternative, or is it part of ip analysis and transformation. Topics include program representations, abstract interpretation, typebased and constraintbased analysis, approaches to interprocedural analysis. Interprocedural analysis and optimization april 2010 nate nystrom uta tuesday, may 4, 2010.
Akash has received a microsoft graduate research fellowship and a scholarship from ibm to support his graduate studies. Interprocedural analysis of concurrent programs under a. We have implemented the algorithm on top of blast, thereby obtaining the first safety verification tool for unbounded asynchronous programs. Addresstaken analysis array dimension padding alias analysis automatic array transposition automatic memory pool. An asynchronous program is one that contains procdure calls which are not immediately executed from the callsite, but stored and dispatched in a nondeterministic order by an external scheduler at a later point. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as aifds problems, a generalization of the ifds problems for interprocedural dataflow analysis. Almost every interprocedural analysis builds summaries at procedure boundaries, and uses the summary of a procedure at its calling contexts, in order to scale to large programs. We formalize the problem of interprocedural dataflow analysis for asynchronous programs as aifds. A free powerpoint ppt presentation displayed as a flash slide show on id. So much so that you could say that most programs written today are object oriented asynchronous programs.
1122 1493 1055 936 1091 737 1366 1523 208 1482 1413 135 502 1399 839 713 342 1165 38 77 210 281 21 511 515 653 1260 1091 1082 1355 305 858 1014 1383 375 601 1390 425 934 1332 941 1441 566 1331 456 448 4