Verification Techniques for Low-Level Programs

Date and time: 
Thursday, February 21, 2019 - 13:30
260 Deschutes
Samuel Pollard
University of Oregon
  • Boyana Norris (chair)
  • Hank Childs
  • Zena Ariola

We explore the application of highly expressive logical and automated reasoning techniques to the analysis of computer programs. We begin with an introduction to formal methods by describing different approaches and the strength of the properties they can guarantee. These range from static analyzers, SMT solvers, deductive program provers, and proof assistants. We then explore applications of formal methods to the analysis of intermediate representations, verification of floating point arithmetic, and fine-grained parallelism such as vectorization. Throughout, we focus on verification techniques applied to programs written at the lowest level of abstraction including binary, bytecode, and assembly languages.