textSoftware systems are ubiquitous in today's world and yet, remain vulnerable to the fallibility of human programmers as well as the unpredictability of their operating environments. The overarching goal of this dissertation is to develop algorithms to enable automated and efficient design and analysis of reliable programs. In the first and second parts of this dissertation, we focus on the development of programs that are free from programming errors. The intent is not to eliminate the human programmer, but instead to complement his or her expertise, with sound and efficient computational techniques, when possible. To this end, we make contributions in two specific domains. Program debugging --- the process of fault localization and ...
Debugging is a major area of software development that has received little attention. This thesis st...
The work reported here lies in the area of overlap between artificial intelligence software engine...
textThis dissertation presents techniques for detecting and tolerating faults in distributed systems...
textThe goal of this dissertation is to present new and improved techniques for fully automatic veri...
Formal methods techniques for improving software correctness and reliability fall into two categorie...
Debugging real systems is hard, requires deep knowledge of the target code, and is time-consuming. B...
This dissertation evaluates the following thesis statement: Program analysis techniques can enable a...
Modern computer systems still have various security and reliability vulnerabilities. Well-known dyna...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
AbstractProgram debugging is an extremely time-consuming process, and it takes up a large portion of...
The difficulty in debugging distributed programs motivates the development of formal methods for des...
The adoption of hardware accelerators, such as Field-Programmable Gate Arrays, into general-purpose ...
One of the most expensive and time-consuming components of the debugging process is locating the e...
Debugging faulty code is a tedious process that is often quite expensive and can require much manual...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Debugging is a major area of software development that has received little attention. This thesis st...
The work reported here lies in the area of overlap between artificial intelligence software engine...
textThis dissertation presents techniques for detecting and tolerating faults in distributed systems...
textThe goal of this dissertation is to present new and improved techniques for fully automatic veri...
Formal methods techniques for improving software correctness and reliability fall into two categorie...
Debugging real systems is hard, requires deep knowledge of the target code, and is time-consuming. B...
This dissertation evaluates the following thesis statement: Program analysis techniques can enable a...
Modern computer systems still have various security and reliability vulnerabilities. Well-known dyna...
Concurrent programs are ubiquitous, from the high-end servers to personal machines, due to the fact ...
AbstractProgram debugging is an extremely time-consuming process, and it takes up a large portion of...
The difficulty in debugging distributed programs motivates the development of formal methods for des...
The adoption of hardware accelerators, such as Field-Programmable Gate Arrays, into general-purpose ...
One of the most expensive and time-consuming components of the debugging process is locating the e...
Debugging faulty code is a tedious process that is often quite expensive and can require much manual...
Reliability is critical for system software, such as OS kernels, mobile browsers, embedded systems a...
Debugging is a major area of software development that has received little attention. This thesis st...
The work reported here lies in the area of overlap between artificial intelligence software engine...
textThis dissertation presents techniques for detecting and tolerating faults in distributed systems...