Undergraduate courses: 1. Operating Systems, 2. Compilers
1. Advanced Compilers
This course covers the following topics:
1. Code optimization
2. Data flow analysis
3. Register assignment
4. Vectorization and parallelization of code
5. Generation of high quality target code
6. Selected current topics, e.g., exploiting multi-core CPUs
For each topic, we cover the classical techniques and a few research papers. The course will contain homework assignments (with very little weightage),
group projects, individual paper reading & presentation assignments, and exams.
The primary sources for the first few lectures are:
1. The Aho-Lam-Sethi-Ullman Compilers book.
2. Slides on code optimization and data flow analysis ( pdf version.)
3. Slides on partial redundancy elimination and a brief paper on E-path based PRE
4. Advanced Compiler Design & Implementation, Steven S Muchnick, Harcourt Asia/Morgan Kaufmann, 1997.
2. Distributed Operating Systems