Class time: Monday, Wednesday, Friday 2-2:50pm.
Class location: McGlothlin-Street Hall 002.
Instructor: Xipeng Shen
(xshen@cs.wm.edu)
Office hours: Monday 10am--noon, Wednesday 10am--noon at McGlothlin-Street Hall 117;
walk-ins without appointment are welcome.
Overview:
With the increasing diversity and complexity of computers and
their applications, the development of efficient, reliable software
has become increasingly dependent on automatic support from compilers
and other program analysis and translation tools. This course covers
principal topics in understanding and transforming programs at the
code block, function, program, and behavior levels. Specific
techniques for imperative languages include data flow, dependence,
inter-procedural, and profiling analyses, resource allocation, and
multi-grained parallelism on both CPUs and GPUs.
Learning Objectives:
The objectives include three folds. First, students will learn the key
techniques in modern compiler construction, getting prepared for industry
demands for compiler engineers. Second, students will understand the
rationale of various program analysis and optimization techniques, able
to improve their programming skills accordingly. The third goal is to
build the foundation for students to pursue the research in the areas of
compiler, program analysis, program modeling, and operating systems.
Textbooks:
Assignments and grading:
There will be several written
assignements and quizzes, a compiler construction project. Grading policy:
30% - written assignments
70% - project
There will be 10% penalty for every 12 hours after the submission deadline except for medication reasons with doctor's proof.