CSCE 531: Compiler Construction (Spring 2021)

Syllabus (pdf, version 0 of 2021-01-11, updated 2021-01-14 with clickable hyperlinks)

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
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]
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 April 8 and due April 15.
Project Assignment 1: First Update: assigned April 8 and due April 15.
Project Assignment 1: Second Update: assigned April 8 and due April 15.
Requirements for Extra Graduate Work.

Lecture Log

Haskell Information

Some useful links: