CIL: Intermediate Language and Tools for Analysis and Transformation of C Programs
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Runtime Analysis of Atomicity for Multithreaded Programs
IEEE Transactions on Software Engineering
AVIO: detecting atomicity violations via access interleaving invariants
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Goldilocks: a race and transaction-aware java runtime
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Monitoring Atomicity in Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
The Complexity of Predicting Atomicity Violations
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Meta-analysis for Atomicity Violations under Nested Locking
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
LICS '09 Proceedings of the 2009 24th Annual IEEE Symposium on Logic In Computer Science
Symbolic Predictive Analysis for Concurrent Programs
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Parametric and sliced causality
CAV'07 Proceedings of the 19th international conference on Computer aided verification
A fast linear-arithmetic solver for DPLL(T)
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Detecting errors in multithreaded programs by generalized predictive analysis of executions
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Reasoning about threads communicating via locks
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Trace-Based symbolic analysis for atomicity violations
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Coverage guided systematic concurrency testing
Proceedings of the 33rd International Conference on Software Engineering
Scalable and precise program analysis at NEC
Proceedings of the 2010 Conference on Formal Methods in Computer-Aided Design
Persuasive prediction of concurrency access anomalies
Proceedings of the 2011 International Symposium on Software Testing and Analysis
An efficient static trace simplification technique for debugging concurrent programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Sound predictive race detection in polynomial time
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A hoare calculus for the verification of synchronous languages
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Scalable and precise symbolic analysis for atomicity violations
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Predicting concurrency failures in the generalized execution traces of x86 executables
RV'11 Proceedings of the Second international conference on Runtime verification
Marathon: detecting atomic-set serializability violations with conflict graphs
RV'11 Proceedings of the Second international conference on Runtime verification
Lock removal for concurrent trace programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Maple: a coverage-driven testing tool for multithreaded programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Predicting serializability violations: SMT-Based search vs. DPOR-Based search
HVC'11 Proceedings of the 7th international Haifa Verification conference on Hardware and Software: verification and testing
Scaling predictive analysis of concurrent programs by removing trace redundancy
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Triggering errors in concurrent programs is a notoriously difficult task A key reason for this is the behavioral complexity resulting from the large number of interleavings of operations of different threads Efficient static techniques, therefore, play a critical role in restricting the set of interleavings that need be explored in greater depth The goal here is to exploit scheduling constraints imposed by synchronization primitives to determine whether the property at hand can be violated and report schedules that may lead to such a violation Towards that end, we propose the new notion of a Universal Causality Graph (UCG) that given a correctness property P, encodes the set of all (statically) feasible interleavings that may violate P UCGs provide a unified happens-before model by capturing causality constraints imposed by the property at hand as well as scheduling constraints imposed by synchronization primitives as causality constraints Embedding all these constraints into one common framework allows us to exploit the synergy between the constraints imposed by different synchronization primitives, as well as between the constraints imposed by the property and the primitives This often leads to the removal of significantly more redundant interleavings than would otherwise be possible Importantly, it also guarantees both soundness and completeness of our technique for identifying statically feasible interleavings As an application, we demonstrate the use of UCGs in enhancing the precision and scalability of predictive analysis in the context of runtime verification of concurrent programs.