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.
Some useful links: