Proceedings ArticleDOI
Non-concurrency analysis
Stephen P. Masticola,Barbara G. Ryder +1 more
- Vol. 28, Iss: 7, pp 129-138
TLDR
This work presents a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them and exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm.Abstract:
Non-concurrency analysis is a set of techniques for statically identifying pairs (or sets) of statements in a concurrent program which can never happen together. This information aids programmers in debugging and manually optimizing programs, improves the precision of data flow analysis, enables optimized translation of rendezvous, facilitates dead code elimination and other automatic optimizations, and allows anomaly detection in explicitly parallel programs. We present a framework for non-concurrency analysis, capable of incorporating previous analysis algorithms [CS88, DS92] and improving upon them. We show general theoretical results which are useful in estimating non-concurrency, and examples of non-concurrency analysis frameworks for two synchronization primitives: the Ada rendezvous and binary semaphores. Both of these frameworks have a low-order polynomial bound on worst-case solution time. We provide experimental evidence that static non-concurrency analysis of Ada programs can be accomplished in a reasonable time, and is generally quite accurate. Our framework, and the set of refinement components we develop, also exhibits dramatic accuracy improvements over [DS91], when the latter is used as a stand-alone algorithm, as demonstrated by our experiments.read more
Citations
More filters
Proceedings ArticleDOI
Model checking for programming languages using VeriSoft
TL;DR: This paper discusses how model checking can be extended to deal directly with "actual" descriptions of concurrent systems, e.g., implementations of communication protocols written in programming languages such as C or C++, and introduces a new search technique that is suitable for exploring the state spaces of such systems.
Journal ArticleDOI
Context-sensitive synchronization-sensitive analysis is undecidable
TL;DR: The article shows that an analysis that is simultaneously both context-sensitive and synchronization-sensitive (that is, a context- sensitive analysis that precisely takes into account the constraints on execution order imposed by the synchronization statements in the program) is impossible even for the simplest of analysis problems.
Proceedings ArticleDOI
Data flow analysis for verifying properties of concurrent programs
Matthew B. Dwyer,Lori A. Clarke +1 more
TL;DR: An approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties and implemented a prototype toolset that automates the analysis for programs with explicit tasking and rendezvous style communication.
Journal ArticleDOI
Software Model Checking: The VeriSoft Approach
TL;DR: It is discussed in this paper how model checking can be extended to analyze arbitrary software, such as implementations of communication protocols written in programming languages like C or C++, and a search technique that is suitable for exploring the state spaces of such systems.
Proceedings ArticleDOI
Reducing false sharing on shared memory multiprocessors through compile time data transformations
TL;DR: Comp compiler algorithms that analyze explicitly parallel programs and restructure their shared data to reduce the number of false sharing misses always outperform programmer efforts to eliminate false sharing.
References
More filters
Co-operating sequential processes
TL;DR: The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers.
Journal ArticleDOI
A general-purpose algorithm for analyzing concurrent programs
TL;DR: A static analysis algorithm is presented here that addresses the following problems: how processes are synchronized, what determines when programs are run in parallel, and how errors are detected in the synchronization structure.
Journal ArticleDOI
Global Data Flow Analysis and Iterative Algorithms
John B. Kam,Jeffrey D. Ullman +1 more
TL;DR: Conditions under which the bound on the number of iterations required for propagation algorithms when the data is represented by bit vectors and depth-first ordering of the flow graph is used are considered are considered.
Journal ArticleDOI
Complexity of analyzing the synchronization structure of concurrent programs
TL;DR: This paper formalizes the notion of the synchronization structure of concurrent programs that use the rendezvous (or similar) mechanism for achieving synchronization and presents complexity results which indicate what may be expected and shed light on the difficulty of correctly constructing concurrent systems.
Journal ArticleDOI
Properties of data flow frameworks: a unified model
TL;DR: A comprehensive overview of data flow frameworks and their characterizing properties is presented, to clarify property definitions and demonstrate their interrelation.