CS 421: Programming Languages and Compilers
Lecture Schedule for Spring 2012
(Previous semesters' lectures at bottom of page.)
Schedule subject to change as course progresses.
Lecture topics (in italics) for not yet given lectures are preliminary, and may change.
Class Date Topic Lecture slides (pdf) Addition readings
11/17Introduction to course; OCamlslides
21/19OCaml: Pattern-matching; recursion on listsslides
31/24OCaml: Datatypes and treeslecture3
41/26Abstract syntaxlecture4
51/31Lexical analysislecture5-6wikipedia,something from Stanford
62/2Lexical analysis, cont.ocammlex manual,tutorial
72/7Context-free grammars; bottom-up parsing; ocamlyacclecture7-8
82/9cont.
92/14Top-down parsinglecture9-10
102/16(cont.)
2/21Midterm 1 (see exams tab for details)
112/23Interpreted MiniJavalecture11 (exercise solutions)
122/28Objects in MiniJavalecture12
133/1Inheritance in MiniJavalecture13
143/6Type-checking in MiniJavalecture14
153/8MP7: Compiling MiniJavalecture15
163/13Compiling MiniJava (cont.)lecture16
173/15Compiling MiniJava (cont.)lecture17
3/20,22Spring break
183/27MiniOCaml interpreter (substitution model)lecture18
193/29MiniOCaml interpreter (environment model)lecture19 (slide 14 corrected, 4/2)
204/3Higher-order functionslecture20 (exercise solns)
214/5Lazy Evaluation and Lambda Calculuslecture21
4/10Midterm 2
224/12Type-checking in OCaml, part 1lecture22 (exercise solns)
234/17Type-checking in OCaml, part 2lecture23 (exercise solns)
244/19Type-checking in OCaml, part 3lecture24 (correction on slide 7, 4/19) (exercise solns)
254/24Type-checking in OCaml, part 4lecture25
264/26Program verificationlecture26
265/1PL history; course wrap-uplecture27
5/3Problem session: 3-5PM, 2405 SC(First half of course)
5/5Problem session: 3-5PM, 2405 SC(Second half of course)
5/9Final exam; 1:30-4:30PM; 269 Everitt and 1404 Siebel
 
Lectures from Spring 2008
Lectures from Summer 2008
Lectures from Fall 2008
Lectures from Spring 2009
Lectures from Summer 2009
Lectures from Fall 2009
Lectures from Spring 2010
Lectures from Summer 2010
Lectures from Fall 2010
Lectures from Spring 2011
Lectures from Summer 2011
Lectures from Fall 2011
Lectures from Spring 2012
Lectures from Summer 2012
Lectures from Fall 2012
Lectures from Spring 2013
Lectures from Summer 2013
Lectures from Fall 2013
Lectures from Spring 2014
Lectures from Summer 2014
Lectures from Fall 2014
Lectures from Spring 2015
Lectures from Summer 2015
Lectures from Fall 2015
Lectures from Spring 2016
Lectures from Summer 2016
Lectures from Fall 2016
Lectures from Spring 2017
Lectures from Summer 2017
Lectures from Fall 2017
Lectures from Spring 2018
Lectures from Summer 2018
Lectures from Fall 2018
Lectures from Spring 2019
Lectures from Summer 2019
Lectures from Fall 2019
Lectures from Spring 2020
Lectures from Summer 2020
Lectures from Fall 2020
Lectures from Spring 2021
Lectures from Summer 2021
Lectures from Fall 2021
Lectures from Spring 2022
Lectures from Summer 2022
Lectures from Fall 2022
Lectures from Spring 2023
Lectures from Summer 2023
Lectures from Fall 2023