Abstract

Asynchronous message-passing systems are employed frequently to implement distributed mechanisms, protocols, and processes. This paper addresses the problem of precise data flow analysis for such systems. To obtain good precision, data flow analysis needs to somehow skip execution paths that read more messages than the number of messages sent so far in the path, as such paths are infeasible at run time. Existing data flow analysis techniques do elide a subset of such infeasible paths, but have the restriction that they admit only finite abstract analysis domains. In this paper we propose a generalization of these approaches to admit infinite abstract analysis domains, as such domains are commonly used in practice to obtain high precision. We have implemented our approach, and have analyzed its performance on a set of 14 benchmarks. On these benchmarks our tool obtains significantly higher precision compared to a baseline approach that does not elide any infeasible paths and to another baseline that elides infeasible paths but admits only finite abstract domains.

Highlights

  • Distributed software that communicates by asynchronous message passing is a very important software paradigm in today’s world

  • This paper is the first one to the best of our knowledge to propose an approach for data flow analysis for asynchronous message-passing systems that (a) admits infinite abstract domains, (b) uses a reasonably precise channel abstraction among the ones known in the literature, and (c) computes maximally precise results possible under the selected channel abstraction

  • This approach is maximally precise, and admits a class of infinite abstract domains. This class includes well-known examples such as Linear Constant Propagation (LCP) [51] and Affine Relationships Analysis (ARA) [46], but does not include the full (CP) analysis. We propose another approach, which we call Forward DFAS, which admits a broader class of abstract domains, but is not guaranteed to be maximally precise on all programs

Read more

Summary

Introduction

Distributed software that communicates by asynchronous message passing is a very important software paradigm in today’s world. It is employed in varied domains, such as distributed protocols and workflows, event-driven systems, and UI-based systems. The existing verification and data flow analysis approaches mentioned earlier have a major limitation, which is that they admit only finite abstract domains. Data flow analysis of sequential programs using infinite abstract domains, e.g., constant propagation [32], interval analysis [12], and octagons [44], is a well developed area, and is routinely employed in verification settings. In this paper we seek to bridge this fundamental gap, and develop a precise data flow analysis framework for message-passing asynchronous systems that admits infinite abstract domains

10: Declare max as the global maximum
Challenges in property checking
Our Contributions
Background and Terminology
Modeling of Asynchronous Message Passing Systems as VCFGs
Data flow analysis over iVCFGs
Backward DFAS Approach
Assumptions and Definitions
Properties of Demand and Covering
Data Flow Analysis Algorithm
Illustration
Properties of the algorithm
Forward DFAS Approach
Implementation and Evaluation
Benchmarks and modeling
Data flow analysis results
Limitations and Threats to Validity
Related Work
Findings
Conclusions and Future Work
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.