ECE516: Compiler Design (Spring 2014)

Announcements

  • (05/30) Final exam schedule
    • Date & Time: Friday, June 13, 9:30 am ~ 11:30 am
    • Place: EB2 511
  • (05/14) Make-up class schedule
    1. Friday 05/30, 10:00 ~ 11:40
    2. Friday 05/30, 19:10 ~ 20:50
    3. Tuesday 06/03, 19:10 ~ 20:50
  • (05/12) No class today (as already announced via email)
  • (02/20) No class on Monday, March 3.

Course Information

Course Overview

This course will cover i) basic compiler flow and compiler optimizations and ii) compiler front-end such as lexer and parser. To emphasize practical and nontechnical skills which are often as important in the field as technical knowledge, a project and paper seminar are also included in the course. Details are subject to change.

Meeting Times and Place

  • Lecture: MW 10:30~11:45 @ EB2 511

Instructor

Textbook

  • Compilers: Principles, Techniques, and Tools (2nd ed.), by A. Aho, M. Lam, R. Sethi, and J. Ullman, Prentice Hall, 2006.

References

  • Advanced Compiler Design and Implementation, by S. Muchnick, Morgan Kaufmann, 1997.

Grading Policy (tentative)

  • 20% seminar (paper presentation + summary + participation), 30% project, 40% final exam, 10% class participation

Lecture Notes

  1. Day 1
  2. Ch. 1
  3. Ch. 2
  4. Ch. 8 (updated 03/18)
  5. Ch. 9 (updated 04/06)
  6. Ch. 10 (updated 05/28, after class)
  7. Ch. 11 (updated 05/30)

HOMEWORK

  • #1 (due April 14, before the lecture)
    1. Dragon book exercise 8.2.2 (a,c) on p.516
    2. Dragon book exercise 8.5.1 on p.541
    3. Dragon book exercise 8.5.2 on p.541
    4. Identify basic blocks from the three-address code of Figure 9.2 using the algorithm given in the text book, and make the flow graph.

  • Ch 1: (1.2) (1.4) (6.1) (6.3) (6.4)
  • Ch 2: (2.1) (2.2) (2.3) (3.2) (4.1)
  • Ch 8: (2.1) (2.2 a/c) (2.3) (2.6 a/c/e)

Participation Record

The instructor will keep a record of offline participation as defined below ("offline" means during class).

What is counted as offline participation

  • Asking question(s) to the instructor
  • Answering someone else's question
  • Answering instructor's question may or may not be counted depending on the difficulty of the question and/or creativity of the answer
  • Asking questions after/before the class is not counted (as it has little value to classmates)
  • Participation before March 12 is not counted (as the system was not ready)
  • Participation during make-up class is counted
  • This list may be extended/updated

Record (for offline participation)

Date Notable Participation Special Note
3/12 CBJeong (asking question during lecture)
3/17 DNguyen (asking question during lecture)
3/19 DNguyen (selected as Best Questioner, on March 26)
3/24 HSLee (selected as Best Questioner, on March 26)
3/26 CBJeong (selected as Best Questioner, on March 31)
3/31 YMEom (selected as Best Questioner, on April 2)
4/02 CBJeong (selected as Best Questioner, on April 7)
4/09 CBJeong, HSLee (selected as Best Questioner, on April 14)
4/16 DNguyen (sole questioner; automatically the Best Questioner)
4/28 DNguyen (sole questioner; automatically the Best Questioner)
5/30 JYYun (selected as Best Questioner, on May 30 -- in evening make-up classs)
5/30 DNguyen (sole questioner of the evening class; automatically the Best Questioner)

  • Notes
    1. The record here is not meant to be very precise/quantitative; rather, its main purpose is to acknowledge and encourage participants
    2. The scope of record keeping may be extended later to discussions, project presentations, etc. (just an idea at this point)
  • Voting results
    • (04/02) 6 4 7 1 8 7 3 4 1 1

Student Presentations

  1. (04/09) Reaching Definitions (Dragon book 9.2.4) - DNguyen & HSLee
  2. (04/14) Live-variable analysis (Dragon book 9.2.5) - WHChoi & HSChoi
  3. (04/14) Available expressions (Dragon book 9.2.6) - JWKim & WHKim
  4. (05/30) Loops in Flow Graphs (Dragon book 9.6; section 9.6.7 is optional) - WBKim & YMEom
  5. (06/02) Basic-block scheduling (=list scheduling) (Dragon book 10.3) - EBJo & JYYun
  6. (06/03) Global code scheduling (Dragon book 10.4; section 10.4.5 and later are optional) - SMHong & GHLee
  7. (06/09) Software pipelining (Dragon book 10.5; section 10.5.10 and later are optional) - CBJeong & TKYoo
  • Note: Students other than those giving a presentation must submit a summary of the topic. Handwriting is okay (but not required) for the summary. This applies to 5~7 in the above.

Calendar

Q&A Forum

  • The Bb Q&A Forum is where students can ask and answer questions though it will also be moderated by TA and instructor.
Topic revision: r35 - 02 Jun 2014, JongeunLee
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback