Welcome to ECE Compiler Course, Fall 2023!

last update:

Latest News

  • Submit your teaching evaluation by Dec 10 and get one bonus point
  • No class on Fri, Dec 8th
  • Late submissions will be accepted until 5pm Fri, Dec 8th (no late penalty)
  • Final Exam info released - Dec 1st
  • No class from Monday, 20th to Monday, Nov 27th - Happy Thanksgiving!
  • Step 8 is released - Nov 10th
  • Midterm 2 info released - Oct 23rd
  • PSet 4 is released - Oct 16th
  • PSet 3 is released - Oct 2nd
  • Midterm 1 info released - Sep 20th
  • PSet 2 is released - Sep 5th
  • Steps 1-7 are released - Sep 3rd
  • PSet 1 is released - Aug 24th
  • Step 0 is released! - Mon, Aug, 21st
  • Course website is now live!! - Tue, Aug 8th

Course Description

This course focuses on the design and construction of compilers and other translators. Topics include:

  • Compilation goals and organization of a translator
  • Grammars and languages
  • Symbol tables, lexical analysis and syntax analysis (parsing)
  • Error handling, intermediate and final code generation
  • Assemblers and interpreters
  • An introduction to optimization

Emphasis is on engineering a compiler or interpreter for a small programming language, typically a C or Pascal subset. Projects involve the stepwise implementation (and documentation) of such a system.

Course Details

All students in both on-campus and online sections will have access to these online course materials:

  • Website (one-stop shop, reference implementation)
  • Brightspace (lecture videos, quizzes, grades): 468, 573
  • Gradescope (problem sets): 468, 573
  • Piazza (Q&A): 468/573, 595

Instructors

Xiaokang Qiu

  • Office: BHEE 329
  • Email Address: xkqiu (at) purdue (dot) edu
  • Office Hours: MW 12:25-1:25 (in-person), Th 2:00-3:00 (virtual)

Teaching Assistants

Pranab Dash

  • Office: BHEE 317
  • Email Address: dashp (at) purdue (dot) edu
  • Office Hours: TuTh 10:00-12:00 (in-person), WF 9:30-10:30 (virtual)

Jason Jones

  • Office: BHEE 208
  • Email Address: jone2078 (at) purdue (dot) edu
  • Office Hours: M 2:00-3:00 (Hybrid), Tu 3:00-5:00 (Virtual)