Schedule

August 26
Lesson 1: Welcome & Overview
August 28 Upstate PL Seminar
September 2
Performance and Measurement (Adrian)
September 4
Lesson 2: Representing Programs
September 9
Lesson 3: Local Analysis & Optimization
September 11
Lesson 3: Local Analysis & Optimization
September 16
Lesson 4: Data Flow
September 18
Lesson 4: Data Flow
September 23
Lesson 5: Global Analysis
September 25
Profiling (Serena Zhang, Maggie Gao, Jacqueline Wen)
September 30
Lesson 6: Static Single Assignment
October 2
Lesson 6: Static Single Assignment
October 7
SSA (Nate Young, Amanda Wang, Jiale Lao, Ning Wang, Ziyang Chen)
October 9
Lesson 7: LLVM
October 14 Fall break
October 16
Automatic Verification (Nikil Shyamsunder, Shihan Fang, Joseph Maheshe, Ruolin Ye, I-Ting Tsai)
October 21
Lesson 8: Loop Optimization
October 23
Lesson 9: Interprocedural Analysis
October 28
Lesson 10: Alias Analysis
October 30
Alias-Based Optimization (Cynthia Shao, Jonathan Brown, Pedro Pontes García)
November 4
Lesson 11: Memory Management
November 6
GC & Reference Counting (Jeffrey Qian, Helen Ge)
November 11
Lesson 12: Dynamic Compilers
November 13
Dynamic Languages (Jake Hyun, Tobi Weinberg and Adnan Armouti (Cornell Tech))
November 18
Tracing (Jeremy Ku-Benjet, Ann Zhang, Sunwoo Kim)
  • Trace-Based Just-in-Time Type Specialization for Dynamic Languages
    Andreas Gal, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, and Michael Franz. PLDI 2009.
November 20
Superoptimization (Thomas McFarland, Vesal Bakhtazad, Nipat Chenthanakij, Arisina Banerjee)
November 25 Project work time
November 27 Thanksgiving break
December 2
Lesson 13: Concurrency & Parallelism
December 4
Lesson 14: Fast Compilers
December 16 Final project deadline, 4:30pm