CS 2210 Compiler Design

Instructor

Syllabus

You can find a copy of the syllabus here.

Announcements

    • (04/30/19) — Final exam graded. Here are the FINAL ANSWERS.

    • (04/22/19) — Project 4 due date delayed to 4/27. All assignment scores except project 4 should have been posted by now.

    • (04/12/19) — Final on 4/24 will cover everything after midterms until and including coloring register allocation. Please review SAMPLE FINAL and SAMPLE FINAL ANSWERS.

    • (04/03/19) — Project 4 has been released due 4/26 (one week ago). Here are the MIDTERM ANSWERS.

    • (03/07/19) — Homework 2 answers posted. Clicking on the pdf link will now show answers.

    • (03/04/19) — Midterm on 3/18 and will cover everything up to, and including, Semantic Analysis. Please review SAMPLE MIDTERM and SAMPLE MIDTERM ANSWERS.

    • (03/04/19) — Project 3 has been released due 4/1.

    • (02/25/19) — Homework 1 answers posted. Clicking on the pdf link will now show answers. Grades uploaded / graded copies distributed today.

    • (02/11/19) — Homework 2 has been released due 3/4. This will be the last written assignment for the course.

    • (02/06/19) — Project 2 has been released due 3/18. Project 3 will be released 3/6, so don't put it off! Also, the midterm exam has been moved to 3/18.

    • (01/30/19) — Classes canceled today due to extreme weather. We will meet again on 2/4. Please submit project 1 by midnight.

    • (01/16/19) — 1/21 (Monday) is MLK day and there will be no class. We will meet again on 1/23.

    • (01/15/19) — HW1 has been released due 2/6. Also, the output for strings.mjava in the Test Inputs for Project 1 had a slight error in the column numbers for the first line, which have been fixed.

    • (01/13/19) — Project 1 has been released due 1/30.

    • (01/08/19) — Please check that you have access to the courseweb page for this course (available in my.pitt.edu).

    • (01/08/19) — Please check you can SSH to elements.cs.pitt.edu using Putty or other (see below in Resources), using your Pitt CSSD account. You will need to be on Pitt VPN to connect if you are off-campus. If login fails (should only happen if you are non-CS), please apply for access using this Link, listing me as sponsor.

    • (01/04/19) — Welcome to CS 2210 Spring Term 2019!

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.

Projects (Due dates to be updated when released)

Written Assignments

    • HW 1: Regular Expressions and Finite Automata | Due 2/6 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 3/4 before class

    • Just like for HW 1, JFLAP is going be your friend. JFLAP allows you to generate LL and LR parser 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.

Reference Manuals

Resources

    • SSH Terminal Clients:

      • Windows users: Putty

      • Mac / Linux users: Use pre-installed ssh client. Open terminal, type: ssh USERNAME@elements.cs.pitt.edu

    • File Transfer Clients: