Asynchronous event-driven systems are ubiquitous across domains such as device drivers, distributed systems, and robotics. These systems are notoriously hard to get right as the programmer needs to reason about numerous control paths resulting from the complex interleaving of events (or messages) and failures. Unsurprisingly, it is easy to introduce subtle errors while attempting to fill in gaps between high-level system specifications and their concrete implementations. This dissertation proposes new methods for programming safe event-driven asynchronous systems. In the first part of the thesis, we present ModP, a modular programming framework for compositional programming and testing of event-driven asynchronous systems. The ModP module s...
We present an implementation of SOTER, a run-time assurance framework for building safe distributed ...
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due t...
Synchronous programs are easy to specify because the side effects of an operation are finished by th...
Asynchronous event-driven systems are ubiquitous across domains such as device drivers, distributed ...
We describe the design and implementation of P, a domain-specific language to write asynchronous eve...
Software is becoming increasingly concurrent: parallelization, decentralization, and reactivity nece...
[[abstract]]With the rapid growth of networking and high-computing power, the demand for large-scale...
A real-world distributed system is rarely implemented as a standalone monolithic system. Instead, it...
Large software systems are usually divided into multiple components that interact with each other. H...
Abstract. The correctness of a system according to a given specification is essential, especially fo...
In this thesis, we discuss using formal verification techniques to ensure the safety of autonomous s...
We consider the problem of provably verifying that an asyn-chronous message-passing system satisfies...
Abstract. We present a framework for model checking concurrent software systems which incorporates b...
A major challenge towards large scale deployment of autonomous mobile robots is to program them with...
Asynchronous programming has become ubiquitous in smartphone and web application development, as wel...
We present an implementation of SOTER, a run-time assurance framework for building safe distributed ...
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due t...
Synchronous programs are easy to specify because the side effects of an operation are finished by th...
Asynchronous event-driven systems are ubiquitous across domains such as device drivers, distributed ...
We describe the design and implementation of P, a domain-specific language to write asynchronous eve...
Software is becoming increasingly concurrent: parallelization, decentralization, and reactivity nece...
[[abstract]]With the rapid growth of networking and high-computing power, the demand for large-scale...
A real-world distributed system is rarely implemented as a standalone monolithic system. Instead, it...
Large software systems are usually divided into multiple components that interact with each other. H...
Abstract. The correctness of a system according to a given specification is essential, especially fo...
In this thesis, we discuss using formal verification techniques to ensure the safety of autonomous s...
We consider the problem of provably verifying that an asyn-chronous message-passing system satisfies...
Abstract. We present a framework for model checking concurrent software systems which incorporates b...
A major challenge towards large scale deployment of autonomous mobile robots is to program them with...
Asynchronous programming has become ubiquitous in smartphone and web application development, as wel...
We present an implementation of SOTER, a run-time assurance framework for building safe distributed ...
Runtime verification (RV) facilitates detecting the failures of software during its execution. Due t...
Synchronous programs are easy to specify because the side effects of an operation are finished by th...