Introduction to Formal Language Theory
Introduction to Formal Language Theory
A generic approach to the static analysis of concurrent programs with procedures
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reachability Analysis of Pushdown Automata: Application to Model-Checking
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Regular symbolic analysis of dynamic networks of pushdown systems
CONCUR 2005 - Concurrency Theory
Associating synchronization constraints with data in an object-oriented language
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Weighted pushdown systems and their application to interprocedural dataflow analysis
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
On the analysis of interacting pushdown systems
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards a framework and a benchmark for testing tools for multi-threaded programs: Research Articles
Concurrency and Computation: Practice & Experience - Parallel and Distributed Systems: Testing and Debugging (PADTAD)
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Reducing Concurrent Analysis Under a Context Bound to Sequential Analysis
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Finding Concurrency-Related Bugs Using Random Isolation
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Interprocedural analysis of concurrent programs under a context bound
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Context-Bounded model checking of concurrent software
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Reasoning about threads communicating via locks
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Verifying concurrent message-passing c programs with recursive calls
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Predecessor Sets of Dynamic Pushdown Networks with Tree-Regular Constraints
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Compositional bitvector analysis for concurrent programs with nested locks
SAS'10 Proceedings of the 17th international conference on Static analysis
Static analysis of interrupt-driven programs synchronized via the priority ceiling protocol
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reasoning about threads with bounded lock chains
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
Hi-index | 0.00 |
We present a new decision procedure for detecting property violations in pushdown models for concurrent programs that use lock-based synchronization, where each thread's lock operations are properly nested (à la synchronized methods in Java). The technique detects violations expressed as indexed phase automata (PAs)--a class of non-deterministic finite automata in which the only loops are self-loops. Our interest in PAs stems from their ability to capture atomic-set serializability violations. (Atomic-set serializability is a relaxation of atomicity to only a user-specified set of memory locations.) We implemented the decision procedure and applied it to detecting atomic-set-serializability violations in models of concurrent Java programs. Compared with a prior method based on a semi-decision procedure, not only was the decision procedure 7.5X faster overall, but the semi-decision procedure timed out on about 68% of the queries versus 4% for the decision procedure.