Anne Mulhern

Learn More
Statistical debugging uses machine learning to model program failures and help identify root causes of bugs. We approach this task using a novel Delta-Latent-Dirichlet-Allocation model. We model execution traces attributed to failed runs of a program as being generated by two types of latent topics: normal usage topics and bug topics. Execution traces(More)
Numeric program analysis is of great importance for the areas of software engineering, soft-<lb>ware verification, and security: to identify many program errors, such as out-of-bounds array<lb>accesses and integer overflows, which constitute the lion’s share of security vulnerabilities re-<lb>ported by CERT, an analyzer needs to establish numeric properties(More)
Mulhern Automated proof assistants provide few facilities for incremental development. Generally, if the underlying structures on which a proof is based are modified, the developer must redo much of the proof. Yet incremental development is really the most natural approach for proofs of programming language properties [5, 12]. We propose " proof weaving " ,(More)
Modern integrated development environments (IDEs) provide programmers with a variety of sophisticated tools for program visualization and manipulation. These tools assist the programmer in understanding legacy code and making coordinated changes across large parts of a program. Similar tools incorporated into an integrated proof environment (IPE) would(More)
Numeric program analysis is of great importance for the areas of software engineering, soft-<lb>ware verification, and security: to identify many program errors, such as out-of-bounds array<lb>accesses and integer overflows, which constitute the lion’s share of security vulnerabilities re-<lb>ported by CERT, an analyzer needs to establish numeric properties(More)
Gallimaufry is a novel language extension development framework with an integrated type-safety component. Its core component is a translator which translates programs written in a simple object-oriented language to semantically equivalent programs in a lambda calculus. A proof of the correctness of the translator is then constructed using an automated proof(More)
  • 1