Syllabus (pdf, version 1 of 2024-01-08).
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 2023-01-10, 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
Lecture notes on
Context-Free Grammars, following sections 2.1-2.3 [M].
Notes for top-down (predictive,
LL(1)) parsing used on 2022-03-17.
Notes for bottom-up (SLR)
parsing.
Notes explaining
the construction from Figure 2.31 to Figure 2.32 [M].
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.
Definition of attribute
grammar with an example.
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.
Basic Blocks, from the Dragon Book.
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.
Requirements for Extra
Graduate Work.