Winter 2013, CS 142 (b) Schedule

Date

Lectures

Presentation Slides

Notes

Week 1. Parsing bytecode

Jan. 8 (Tue)

Lecture 1: Overview of the project and introduction of the .class file layout

Class overview

The class file format

Jan. 10 (Thur)

No lecture -- working on the project

 

 

Week 2-3. Building a Java interpreter

Jan. 15 (Tue)

Lecture 2: What is a Java interpreter and how to implement it?

Building a Java interpreter

Java bytecode instruction listing

Jan. 17 (Thur)

No lecture -- working on the project

 

 

Jan. 22 (Tue)

No lecture -- working on the project

 

 

Jan. 24 (Thur)

No lecture -- working on the project

 

 

Week 4- 5. Building SSA

Jan. 29 (Tue)

Lecture 3: What is SSA and how to compute it?

Building an SSA intermediate representation

SSA form

Cytron et al. TOPLAS paper

Jan. 31 (Thur)

No lecture -- working on the project

Feb. 5 (Tue)

No lecture -- working on the project

 

 

Feb. 7 (Thurs)

No lecture -- working on the project

 

 

Week 6-7. Developing SSA-based optimizations

Feb. 12 (Tue)

Lecture 4: Dataflow optimization I --- liveness analysis and register allocation

Register allocation

X86 registers

Register allocation via coloring

A good summary of register allocation techniques

Feb. 14 (Thurs)

No lecture -- working on the project

 

 

Feb. 19 (Tue)

Lecture 5: Dataflow optimization II --- constant propagation

Constant propagation

 

Feb. 21 (Thurs)

No lecture -- working on the project

 

Week 8-9. Generating X86 machine code

Feb. 26 (Tue)

Lecture 6: Assembler

Code generation

  Intel Software Developerís Manual

Feb. 28 (Thurs)

No lecture -- working on the project

 

 

Mar. 5 (Tue)

No lecture -- working on the project

 

 

Mar. 7 (Thurs)

No lecture -- working on the project

 

 

Week 10. Project Demo Week

Mar. 12 (Tue)

Project Demo (I)

 

 

Mar. 14 (Thurs)

Project Demo (II)

 

Acknowledgement: this webpage was adapted from Prof.  Feng Qin's CSE 755 schedule page at Ohio State.