Program analysis is the foundation for most modern software tools,
such as compilers, bug checkers, just-in-time optimisers,
refactoring engines, and IDEs. In this course we will explore three
central program analysis techniques: type
inference, dataflow analysis, and dynamic program
analysis.