CSE 788.12: Compile-Time Program Analysis and Transformations,
Autumn 2010
Basic Information
- Instructor: Nasko
Rountev, DL 685, tel. 292-7203, email: rountev cse
ohio-state edu
- Course page:
http://www.cse.ohio-state.edu/~rountev/788
- Credits: 3; Call number: 27486; Class meetings: TR 12:30 - 1:48, Dreese 369
- Office hours:
Tuesday and Wednesday 11:00 - 12:00,
or by appointment
Prerequisites
The prerequisites for this course are (1) CSE 755 or CSE 756, and (2)
basic knowledge of C, C++, or Java. Instructor permission can always
override these speak with me if you are not sure whether you
have the necessary background.
Course Overview
The goal of this course is to introduce students to basic foundations
and current advances in the area of static (compile-time) program
analysis as well as some related program transformations.
Static program analyses are traditionally used in compilers for
performance optimizations, as well as in software engineering tools
for software understanding, evolution, debugging, and testing. The
material will be useful for students working in compilers, systems,
software engineering, and programming languages. Some of the topics to
be covered include control-flow analysis, dataflow analysis, SSA form,
type analysis, pointer/alias analysis, side-effect analysis, and
program slicing. These topics apply both to imperative languages and
object-oriented languages.
Course Organization
The course will have the following parts:
Lectures by the Instructor
I will present an overview of some basic static analyses and
the related program transformations. The goal of these lectures
is to establish some background for the project. No previous knowledge
of program analysis is expected. I will start from scratch and will
cover both a number of specific analyses/transformations as well as
the corresponding theoretical foundations.
Homeworks
There will be several homeworks with small problems related to the
material presented in the lectures.
Projects
Each student will complete two projects. The default project
will be done by everyone. It will require the implementation of some
foundational compile-time analysis algorithms. The individualized
project is specific to each student and will be tailored to
her/his ongoing and future research.
Grading
Homeworks 20%, default project 40%, individualized project 40%
Students with Disabilities
Any student who feels he or she may need an accommodation based on the
impact of a disability should contact me privately to discuss his or
her specific needs. Please contact the Office of Disability Services
at (614) 292-3307, or visit 150 Pomerene Hall, to coordinate
reasonable accommodations for students with documented disabilities.
Religious Obligations
I will do my best to accommodate any religious obligations you may
have. Please contact me privately, at least a week in advance, to work
out any relevant details.