We aim to make it easier for programmers to write correct concurrent programs and to demonstrate that concurrency testing techniques, typically described in the context of simple core languages, can be successfully applied to languages with more complex concurrency. In pursuit of these goals, we develop three lines of work: Testing concurrent Haskell We develop a library for testing concurrent Haskell programs using a typeclass abstraction of concurrency, which we give a formal semantics. Our tool implements systematic concurrency testing, a family of techniques for deterministically testing concurrent programs. Along the way we also tackle how to soundly handle daemon threads, and how to usefully present complex execution traces to a u...
Concurrency bug detection is important to guarantee the correct behavior of multithread programs. Ho...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
We present CoCo, the Concurrency Commentator, a tool that recovers a declarative view of concurrent ...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
thesisConcurrent programs are extremely important for efficiently programming future HPC systems. La...
This dissertation presents a number of methods to build massively concurrent network applications in...
Various concurrency primitives had been added to functional programming languages in different ways....
Correctly developing multi-threaded programs is notoriously difficult, and getting total coverage us...
Developing correct concurrent software is a difficult task, due to the inherently non-deterministic ...
Shared-memory multi-threaded programming is inherently more difficult than single-threaded programmi...
Concurrent programs are executed by multiple threads that run simultaneously. While this allows prog...
. A monad for concurrent programming that is suitable for being built into Haskell is presented. The...
We propose a model for measuring the runtime of concurrent programs by the minimal number of evaluat...
Reasoning systems based on Concurrent Separation Logic make verifying complex concurrent algorithms ...
Concurrency bug detection is important to guarantee the correct behavior of multithread programs. Ho...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...
We present CoCo, the Concurrency Commentator, a tool that recovers a declarative view of concurrent ...
Testing concurrent software is hard due to its non-deterministic behavior. Concurrency bugs triggeri...
thesisConcurrent programs are extremely important for efficiently programming future HPC systems. La...
This dissertation presents a number of methods to build massively concurrent network applications in...
Various concurrency primitives had been added to functional programming languages in different ways....
Correctly developing multi-threaded programs is notoriously difficult, and getting total coverage us...
Developing correct concurrent software is a difficult task, due to the inherently non-deterministic ...
Shared-memory multi-threaded programming is inherently more difficult than single-threaded programmi...
Concurrent programs are executed by multiple threads that run simultaneously. While this allows prog...
. A monad for concurrent programming that is suitable for being built into Haskell is presented. The...
We propose a model for measuring the runtime of concurrent programs by the minimal number of evaluat...
Reasoning systems based on Concurrent Separation Logic make verifying complex concurrent algorithms ...
Concurrency bug detection is important to guarantee the correct behavior of multithread programs. Ho...
<p>The challenge this thesis addresses is to speed up the development of concurrent programs by incr...
The lock-based shared memory model has proven to be error prone and difficult to test. Furthermore a...