CSCE 531: Compiler Construction (Spring 2022)

Syllabus (pdf, version 3 of 2022-03-27; corrected an error concerning the relative weight of midterm and final on p.6; replaced text is struck through).

Notes
The notes below include material from past offerings of the course.


Proof of correctness of a simple compiler written in Haskell , from [H] (See Syllabus for full reference), used on 2020-01-12 and 14.
Introductory lectures
Lecture notes for Chapter 1 [W]
Lecture notes for Chapter 2 [W]
Lecture notes for Chapter 1 [R] , provided by Dr. Aarne Ranta. Note that all slides for [R] are available at http://www.grammaticalframework.org/ipl-book/.
Transcript of handwritten notes of 2020-01-16 lecture, with an example of use of the technique of loop invariants.
Lecture notes for Chapter 3 [W]
Lecture notes for Chapter 4 [W]
More lecture notes for Chapter 4 [W] , used on 2020-02-11, with Java code for a recursive descent parser for Mini Triangle.
Lecture notes for Chapter 1 [M] , provided by Dr. Jost Berthold through Torben Mogensen.
Transcript of handwritten notes with details of minimization of DFA example from a slide by Dr. Jost Berhold, used in the 2020-01-30 lecture.
Lecture notes for Chapter 2 [M] , provided by Dr. Jost Berthold through Torben Mogensen.
Lecture notes for Chapters 1 and 2 [M] by Cosmin O. Oancea, provided by Dr. Torben Mogensen.
Lecture notes on syntax, with the grammar of the CLite language
Notes for top-down (predictive, LL(1)) parsing used on 2022-03-17.
Transcript of handwritten notes with details of conversion of an NFA to a DFA for SLR table construction from a slide by Dr. Jost Berhold, used in the 2020-02-18 lecture.
Lecture notes for Chapter 5 [W] , on Contextual Analysis (scope and type checking), used in the 2020-02-25 lecture.
Transcript of handwritten notes of 2020-02-25 lecture, with definition of reduce (insert, fold) and map (apply-to-all).
Lecture notes for Chapter 3 [M] by Cosmin O. Oancea, provided by Dr. Torben Mogensen.
Lecture notes for Chapter 4 [R] , provided by Dr. Aarne Ranta. Note that all slides for [R] are available at http://www.grammaticalframework.org/ipl-book/.
Lecture notes for Chapter 3 [M] (Scopes and Symbol Tables).
Lecture notes for Chapter 5 [R] , (Interpreters) provided by Dr. Aarne Ranta. Note that all slides for [R] are available at http://www.grammaticalframework.org/ipl-book/.
Lecture notes for Chapter 4 [M] (Interpretation).
Lecture notes for Chapter 6 [M] on Intermediate Code Generation, modified from slides by Cosmin O. Oancea, provided by Dr. Torben Mogensen.
Lecture notes for Chapter 7 [M] on Machine Code Generation, modified from slides by Cosmin O. Oancea, provided by Dr. Torben Mogensen.
Lecture notes for Chapter 8 [M] on Register Allocation and Liveness Analysis, modified from slides by Cosmin O. Oancea, provided by Dr. Torben Mogensen.
The SimpleSem simulator (java, zip archive).
A Java-based environment for teaching programming language concepts, by Manfred Hauswirth, Mehdi Jazayeri, and Alexander Winzer. A paper presented at FIE '98: Frontiers in Education '98, November 4-7, 1998, Tempe, Arizona.
Sections 6.2-6.6 [W] on functions

Tests

Homework and Projects
See lecture log for a more complete list, which includes assignments for which no handout was given. Assignments should be turned in via the departmental dropbox.
Points per assignment.
Project Assignment 1: assigned February 8 and due February 17.
Requirements for Extra Graduate Work.

Lecture Log

Haskell Information

Some useful links: