Program Analysis and Understanding
Program Analysis and Understanding
Fall 2009
This core course is about techniques for analyzing and understanding software artifacts. Ultimately, the goal of this area of study is to improve the quality of software. We will cover three related areas of programming languages research:
1.Static analysis, the name for any automatic technique for reasoning about program source code. We will study data flow analysis, type systems, and other forms of analysis.
2.Formal systems for describing languages and programs, including lambda calculus and axiomatic, denotational, and operational semantics. We will be encoding these semantics in part with the Coq proof assistant.
3.Programming language features and how they affect software, including imperative, functional, and object-oriented programming.
Description
Location: CSIC 2118, MW 12:30 - 1:45pm
Final Exam: Take home, available Dec. 10-14
Project: Due Dec. 19
Instructor:
4131 A.V. Williams Building
Office hours: TWF 10-11am
Textbook: None (but see recommendations)
Discussion: CS Forum