OXFORD UNIVERSITY COMPUTING LABORATORY

Program Analysis


MSc in Computer Science, Schedule C
MMath and Computer Science
MComputer Science
24 lectures HT
Professor O de Moor
Assessed by take-home mini-project

Prerequisites

Functional programming, plus familiarity with Java. A good understanding of compiler construction is essential. Programming Languages is an advantage but not a necessity.

Overview

Program analysis provides the theory, algorithms and engineering techniques to answer questions about your programs. For example, you might want to determine what statements could have contributed to the value of an expression. Another application is for a compiler to decide whether an optimisation can be applied. Or you might want some mechanical assistance when refactoring your program. Program analysis is also indispensable when proving properties of large programs, for instance to check that there are no buffer overflows.

An elegant and crisp mathematical framework is common to all these applications. This course will introduce you to that mathematics, and simultaneously show how it leads to beautiful algorithms that solve practically important problems.

Learning Outcomes

Students will learn the mathematical theory of lattices, Galois connections, abstract interpretation, and fixpoint computations, Furthermore they will learn to apply those notions in controlflow analysis and dataflow analysis. In turn, those are illustrated by refactoring transformations, optimisations, program understanding tools, and program checkers


[Oxford Spires]



Oxford University Computing Laboratory Courses Research People About us News