Single-pass generation of static single-assignment form for structured languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Array SSA form and its use in parallelization
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deterministic replay of Java multithreaded applications
SPDT '98 Proceedings of the SIGMETRICS symposium on Parallel and distributed tools
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Isolating failure-inducing thread schedules
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Concurrent SSA Form in the Presence of Mutual Exclusion
ICPP '98 Proceedings of the 1998 International Conference on Parallel Processing
Concurrent Static Single Assignment Form and Constant Propagation for Explicitly Parallel Programs
LCPC '97 Proceedings of the 10th International Workshop on Languages and Compilers for Parallel Computing
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Euro-Par '00 Proceedings from the 6th International Euro-Par Conference on Parallel Processing
Array SSA for Explicitly Parallel Programs
Euro-Par '99 Proceedings of the 5th International Euro-Par Conference on Parallel Processing
Optimizing Java Bytecode Using the Soot Framework: Is It Feasible?
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Optimizing Mutual Exclusion Synchronization in Explicitly Parallel Programs
LCR '00 Selected Papers from the 5th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Advanced copy propagation for arrays
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Choosing among Alternative Pasts
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
Analysis and optimization of explicitly parallel programs
Analysis and optimization of explicitly parallel programs
Multithreaded java program test generation
IBM Systems Journal
Multi-threaded testing with AOP is easy, and it finds bugs!
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Testing concurrent programs using value schedules
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Towards a better collaboration of static and dynamic analyses for testing concurrent programs
PADTAD '08 Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Hi-index | 0.00 |
Non-determinism is a serious impediment to testing and debugging concurrent programs. Such programs do not execute the same way each time they are run, which can hide the presence of errors. Existing techniques use a variety of mechanisms that attempt to increase the probability of uncovering error conditions by altering the execution sequence of a concurrent program, but do not test for specific errors. This paper presents some preliminary work in deterministically executing a multithreaded program using a combination of an intermediate compiler form that identifies the set of writes of a shared variable by other threads are visible at a given read of that variable and aspect-oriented programming to control program execution. Specifically, the aspects allow a read of a shared variable to return any of the reaching definitions, where the desired definition can be selected before the program is run. As a result, we can deterministically run test cases. This work is preliminary and many issues have yet to be resolved, but we believe this idea shows some promise.