It is generally acknowledged that developing correct multithreaded codes is difficult, because threads may interact with each other in unpredictable ways. The goal of this work i...
Software model checkers are being used mostly to discover specific types of errors in the code, since exhaustive verification of complex programs is not possible due to state explo...
A static analysis design is sufficient if it can prove the property of interest with an acceptable number of false alarms. Ultimately, the only way to confirm that an analysis d...
Concurrent programming is a complex task, even with modern languages such as Java who provide languagebased support for multithreading and synchronization. In addition to typical ...
The tradeoffs between consistency, performance, and availability are well understood. Traditionally, however, designers of replicated systems have been forced to choose from eithe...