POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
Deriving backtracking monad transformers
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
The Evaluation Dependence Tree as a Basis for Lazy FunctionalDebugging
Automated Software Engineering
Using Runtime Analysis to Guide Model Checking of Java Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Tutorial: Proving Properties of Concurrent System with SPIN
CONCUR '95 Proceedings of the 6th International Conference on Concurrency Theory
Complete and Partial Redex Trails of Functional Computations
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Runtime safety analysis of multithreaded programs
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A poor man's concurrency monad
Journal of Functional Programming
A thread monitoring system for multithreaded Java programs
ACM SIGPLAN Notices
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Modular Checkpointing for Atomicity
Electronic Notes in Theoretical Computer Science (ENTCS)
Lightweight checkpointing for concurrent ml
Journal of Functional Programming
A high-level implementation of composable memory transactions in concurrent haskell
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
This paper presents an approach to searching for deadlocks in Concurrent Haskell programs. The search is based on a redefinition of the IO monad which allows the reversal of Concurrent Haskells concurrency primitives. Hence, it is possible to implement this search by a backtracking algorithm checking all possible schedules of the system. It is integrated in the Concurrent Haskell Debugger (CHD), and automatically searches for deadlocks in the background while debugging. The tool is easy to use and the small modifications of the source program are done by a preprocessor. In the tool we use iterative deepening as search strategy which quickly detects deadlocks close to the actual system configuration and utilizes idle time during debugging at the best.