CS 2210 Compiler Design

Instructor

Name:Wonsun Ahn
Office:6115 Sennott Square
Phone:(412) 624-8419
Email:wahn@pitt.edu
Office Hours: Mon 2:30 - 4:00 PM
Wed 1:30 - 3:00 PM

Syllabus

You can find a copy of the syllabus here.

Announcements

  • (04/25/18) — Project 4 deadline extended to 4/29.
  • (04/18/18) — Final exam review will be on Tuesday (4/24) 5:30 - 7:00 in the same classroom. Final exam will be Wednesday (4/25) 4:30 - 6:30 also in the same classroom.
  • (04/18/18) — And.. the answers to the sample final: Sample Final Answers. Today we will conduct a poll on the make up class.
  • (04/16/18) — Final (4/25) will cover starting from and including semantic analysis. Here is a Sample Final to help you prepare.
  • (04/04/18) — SPIM debugger manual newly available for project 4 (see below).
  • (04/02/18) — Project 4 released due 4/27
  • (03/12/18) — And.. the answers to the sample midterm: Sample Midterm Answers.
  • (03/03/18) — Midterm (3/14) will cover up to and including syntax analysis. Here are a few helpful resources: Sample Midterm, HW 1 Answers, HW 2 Answers.
  • (02/26/18) — Project 3 released due 4/2
  • (02/12/18) — HW 2 released due 2/28
  • (02/07/18) — Project 2 released due 3/14
  • (01/22/18) — HW 1 released due 2/7
  • (01/17/18) — Project 1 released due 1/31
  • (01/06/18) — Welcome to CS 2210 Spring Term 2018

Text and Slides

Alfred V.Aho, Monica Lam, Ravi Sethi and Jeffery D.Ullman, Compilers: principles, techniques and tools, 2nd Edition, 2006, Addison-Wesley Publishing Company.

Topic Slides (PDF)
Introduction Slides
Lexical Analysis Slides
Syntax Analysis Slides 1
Slides 2
Semantic Analysis Slides
Code Generation Slides
Runtime Management Slides
Code Optimization Slides

Projects (Due dates to be updated when released)

Written Assignments

  • HW 1: Regular Expressions and Finite Automata | Due 2/7 before class
    JFLAP is a Java-based educational tool for helping you understand the front-end analyses of a compiler. Among its functionalities is the ability to convert between NFAs, DFAs, and REs. Feel free to get help from this tool if you hit a roadblock. You may also use the tool to quickly draw state graphs instead of drawing by hand.
  • HW 2: Grammars Parsers | Due 2/28 before class
    Just like for HW 1, JFLAP is going be your friend. JFLAP allows you to generate LL and LR parsering tables given a grammar and takes you through the steps to do it. Feel free to use it to generate your answers, but make sure you understand what it is doing.
    • JFLAP: Java-based tool for context free grammars.

Reference Manuals