Software—Practice & Experience
Static analysis of low-level synchronization
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
A general-purpose algorithm for analyzing concurrent programs
Communications of the ACM
Data flow analysis of distributed communicating processes
International Journal of Parallel Programming
Analysis of event synchronization in a parallel programming tool
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Properties of data flow frameworks: a unified model
Acta Informatica
Data flow analysis of concurrent systems that use the rendezvous model of synchronization
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Concurrency analysis in the presence of procedures using a data-flow framework
TAV4 Proceedings of the symposium on Testing, analysis, and verification
A model of Ada programs for static deadlock detection in polynomial times
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Static detection of deadlocks in polynomial time
Static detection of deadlocks in polynomial time
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
Anomaly detection in concurrent programs
ICSE '79 Proceedings of the 4th international conference on Software engineering
Data flow analysis for verifying properties of concurrent programs
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Reducing false sharing on shared memory multiprocessors through compile time data transformations
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Lattice frameworks for multisource and bidirectional data flow problems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Improving the accuracy of Petri net-based analysis of concurrent programs
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
A flexible architecture for building data flow analyzers
Proceedings of the 18th international conference on Software engineering
Model checking for programming languages using VeriSoft
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ace: linguistic mechanisms for customizable protocols
PPOPP '97 Proceedings of the sixth ACM SIGPLAN symposium on Principles and practice of parallel programming
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Automatically closing open reactive programs
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
An efficient algorithm for computing MHP information for concurrent Java programs
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Ace: a language for parallel programming with customizable protocols
ACM Transactions on Computer Systems (TOCS)
Context-sensitive synchronization-sensitive analysis is undecidable
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying safety properties of concurrent Java programs using 3-valued logic
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Detecting concurrently executed pairs of statements using an adapted MHP algorithm
Proceedings of the 2001 annual ACM SIGAda international conference on Ada
Isolating failure-inducing thread schedules
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Software model checking in practice: an industrial case study
Proceedings of the 24th International Conference on Software Engineering
Using the observer design pattern for implementation of data flow analyses
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Pointer analysis for structured parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static Analysis of Barrier Synchronization in Explicitly Parallel Programs
PACT '94 Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Static conflict analysis for multi-threaded object-oriented programs
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A compile-time optimization framework for Ada rendezvous
ACM SIGPLAN Notices
Flow analysis for verifying properties of concurrent software systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Compiler techniques for high performance sequentially consistent java programs
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Software Model Checking: The VeriSoft Approach
Formal Methods in System Design
Making Sequential Consistency Practical in Titanium
SC '05 Proceedings of the 2005 ACM/IEEE conference on Supercomputing
May-happen-in-parallel analysis of X10 programs
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Barrier matching for programs with textually unaligned barriers
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
RCanalyser: A Flexible Framework for the Detection of Data Races in Parallel Programs
Ada-Europe '08 Proceedings of the 13th Ada-Europe international conference on Reliable Software Technologies
Dependency Analysis for Control Flow Cycles in Reactive Communicating Processes
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Concurrency Analysis for Shared Memory Programs with Textually Unaligned Barriers
Languages and Compilers for Parallel Computing
Featherweight X10: a core calculus for async-finish parallelism
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
Causal dataflow analysis for concurrent programs
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Compositional bitvector analysis for concurrent programs with nested locks
SAS'10 Proceedings of the 17th international conference on Static analysis
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient computation of may-happen-in-parallel information for concurrent java programs
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Concurrency analysis for parallel programs with textually aligned barriers
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Software protection through dynamic code mutation
WISA'05 Proceedings of the 6th international conference on Information Security Applications
On a Technique for Transparently Empowering Classical Compiler Optimizations on Multithreaded Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic consistency checking of OpenMp parallel programs
Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems
Efficient may happen in parallel analysis for async-finish parallelism
SAS'12 Proceedings of the 19th international conference on Static Analysis
Hi-index | 0.00 |
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.