Teaching Interests

Undergraduate courses: 1. Operating Systems, 2. Compilers

Postgraduate courses:

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