Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Model checking using net unfoldings
TAPSOFT '93 Selected papers of the colloquium on Formal approaches of software engineering
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem
Automated Software Engineering
Using Partial Orders to Improve Automatic Verification Methods
CAV '90 Proceedings of the 2nd International Workshop on Computer Aided Verification
Using Unfoldings to Avoid the State Explosion Problem in the Verification of Asynchronous Circuits
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
Stubborn sets for reduced state space generation
Proceedings of the 10th International Conference on Applications and Theory of Petri Nets: Advances in Petri Nets 1990
All from One, One for All: on Model Checking Using Representatives
CAV '93 Proceedings of the 5th International Conference on Computer Aided Verification
Refining Dependencies Improves Partial-Order Verification Methods (Extended Abstract)
CAV '93 Proceedings of the 5th International Conference on Computer Aided Verification
A foundation for actor computation
Journal of Functional Programming
Dynamic partial-order reduction for model checking software
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reachability Testing of Concurrent Programs
IEEE Transactions on Software Engineering
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Dynamic Partial Order Reduction Using Probe Sets
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
Actor frameworks for the JVM platform: a comparative analysis
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
A Framework for State-Space Exploration of Java-Based Actor Programs
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
A race-detection and flipping algorithm for automated testing of multi-threaded programs
HVC'06 Proceedings of the 2nd international Haifa verification conference on Hardware and software, verification and testing
Actors that unify threads and events
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
Cartesian partial-order reduction
Proceedings of the 14th international SPIN conference on Model checking software
Peephole partial order reduction
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
Evaluating ordering heuristics for dynamic partial-order reduction techniques
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Semi-formal development of a fault-tolerant leader election protocol in erlang
FATES'04 Proceedings of the 4th international conference on Formal Approaches to Software Testing
Automated systematic testing of open distributed programs
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Model-based, event-driven programming paradigm for interactive web applications
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Why do scala developers mix the actor model with other concurrency models?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Optimal dynamic partial order reduction
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
To detect hard-to-find concurrency bugs, testing tools try to systematically explore all possible interleavings of the transitions in a concurrent program. Unfortunately, because of the nondeterminism in concurrent programs, exhaustively exploring all interleavings is time-consuming and often computationally intractable. Speeding up such tools requires pruning the state space explored. Partial-order reduction (POR) techniques can substantially prune the number of explored interleavings. These techniques require defining a dependencyrelation on transitions in the program, and exploit independency among certain transitions to prune the state space. We observe that actor systems, a prevalent class of programs where computation entities communicate by exchanging messages, exhibit a dependency relation among co-enabled transitions with an interesting property: transitivity. This paper introduces a novel dynamic POR technique, TransDPOR, that exploits the transitivity of the dependency relation in actor systems. Empirical results show that leveraging transitivity speeds up exploration by up to two orders of magnitude compared to existing POR techniques.