Program analysis tools that statically find bugs in software still report a deluge of false alarms notwithstanding their widespread adoption. This is because they must necessarily make approximations in order to scale to large and complex programs. The focus of this dissertation is to make static program analyses more effective by guiding them towards true bugs and away from false alarms. We do this by augmenting logical program reasoning with probabilistic reasoning. We seek to overcome the incompleteness of a static analysis by associating each alarm it produces with a probability that it is a true alarm. We compute alarm probabilities by performing Bayesian inference on a probabilistic model derived from the execution of the analysis. Mo...
Probabilistic modeling and reasoning are central tasks in artificial intelligence and machine learni...
Static analysis tools report software defects that may or may not be detected by other verification ...
Static analysis (SA) tools that find bugs by inferring pro-grammer beliefs (e.g., FindBugs) are comm...
Program analysis tools that statically find bugs in software still report a deluge of false alarms n...
Access restricted to the OSU CommunityThis thesis shows how probabilistic graphical models may be ap...
We present our experience of combining, in a realistic setting, a static analysis for soundness and ...
Traditional assertions express correctness properties that must hold on every program execution. How...
Abstraction is a fundamental tool for reasoning about a complex system. Program abstraction has been...
Debugging is a search process to find, understand and fix the root cause of software defects. Can de...
Probabilistic programming languages allow domain ex-perts to specify generative models in a high-lev...
Software is becoming increasingly pervasive and complex. These trends expose masses of users to unin...
Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Comput...
To date, software engineers charged with debugging complex software packages have had few automated ...
We suggest a Bayesian approach to the problem of reducing bug turnaround time in large software deve...
Abstract Probabilistic programming languages allow programmers to write down conditional probability...
Probabilistic modeling and reasoning are central tasks in artificial intelligence and machine learni...
Static analysis tools report software defects that may or may not be detected by other verification ...
Static analysis (SA) tools that find bugs by inferring pro-grammer beliefs (e.g., FindBugs) are comm...
Program analysis tools that statically find bugs in software still report a deluge of false alarms n...
Access restricted to the OSU CommunityThis thesis shows how probabilistic graphical models may be ap...
We present our experience of combining, in a realistic setting, a static analysis for soundness and ...
Traditional assertions express correctness properties that must hold on every program execution. How...
Abstraction is a fundamental tool for reasoning about a complex system. Program abstraction has been...
Debugging is a search process to find, understand and fix the root cause of software defects. Can de...
Probabilistic programming languages allow domain ex-perts to specify generative models in a high-lev...
Software is becoming increasingly pervasive and complex. These trends expose masses of users to unin...
Thesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Comput...
To date, software engineers charged with debugging complex software packages have had few automated ...
We suggest a Bayesian approach to the problem of reducing bug turnaround time in large software deve...
Abstract Probabilistic programming languages allow programmers to write down conditional probability...
Probabilistic modeling and reasoning are central tasks in artificial intelligence and machine learni...
Static analysis tools report software defects that may or may not be detected by other verification ...
Static analysis (SA) tools that find bugs by inferring pro-grammer beliefs (e.g., FindBugs) are comm...