eecs 662: programming languages
spring 2020

essentials | homework | quiz solutions | schedule

essentials

Instructor J. Garrett Morris
Email garrettm@ku.edu
Office Eaton 2028
Office hours TH 2:20-5:00 PM, and by appointment
Course website https://ittc.ku.edu/~garrett/eecs662s20/
https://piazza.com/ku/spring2020/eecs662
Lectures TH 1:00-2:15, Learned 1136

syllabus

The syllabus is available here.

This class is an introduction to the analysis, description, and interpretation of programming languages. We will ask questions like

To answer these questions, we will develop a vocabulary for discussing what languages (and programs written in them) do, and what they mean. This vocabulary will include ideas about:

Our primary means of exploring these ideas will be to build interpreters for concrete languages that demonstrate them. However, keep in mind: our goal is not to write interpreters, but rather to use them as formal artifacts to gain understanding of the languages they interpret.

In ABET-speak, the high level objectives for this course are that students should be able to:

homework

Homework and solutions are no longer available.

Number Due date Assignment Sample solutions
0 February 5, 1:00 PM HW0.hs HW0.hs
1 February 27, 1:00 PM HW1.hs HW1.hs
2 March 31, 1:00 PM HW2.hs HW2.hs
3 April 16, 1:00 PM HW3.hs HW3.hs
4 May 7, 1:00 PM HW4.hs

quiz solutions

Number Date Blank Solutions
1 2/4 Q1.pdf Q1ans.pdf
2 2/18 Q2.pdf Q2ans.pdf
3 2/23 Q3.pdf Q3ans.pdf
4 3/31 Q4.pdf Q4ans.pdf
5 4/7 Q5.pdf Q5ans.pdf
6 4/14 Q6.pdf Q6ans.pdf
7 4/21 Q7.pdf Q7ans.pdf
8 4/28 Q8.pdf Q8ans.pdf
9 5/5 Q9.pdf Q9ans.pdf

schedule

date topics notes
1/21 Introduction and administrivia
What is a programming language?
day1.pdf
Homework 0 released
1/23 No class—instructor away
1/28 Multiple notions of evaluation
Properties of evaluation
day2.pdf
1/30 From formal descriptions to language implementations Day3.hs
2/4 Booleans
Simple type systems
day3.pdf
2/6 Pairs
Implementing non-total evaluation
Homework 1 released
Day5.hs
2/11 Let expressions and names
Substitution
α-equivalence
day4.pdf
2/13 Movie night! Matt Might on error
2/18 Evaluation order
Substitution and typing
day5.pdf
2/20 Environments, evaluation, and typing day6.pdf
2/25 λ-calculus day7.pdf
2/27 λ-calculus and environments
Typing functions
Homework 2 released
day8.pdf
3/3 Recursion Notes on recursion
3/5 Basic proof theory
The Curry-Howard correspondence
day9.pdf
3/10
3/12
No class—spring break
3/17
3/19
No class—quarantine Midterm review (solutions)
3/24 Midterm (covering material up to spring break) (solutions)
3/26 Introducing effects
Readers
Effects, functions, and evaluation
day11.pdf
3/31 Accumulators
Order of operations
day12.pdf
4/2 Non-determinism
Combining effects
Homework 3 released
day13.pdf
4/7
4/9
Type and effect systems day14.pdf
day15.pdf
4/14
4/16
Subtyping subtyping.html
4/21
4/23
Implicit parametric polymorphism Homework 4 released
day17.pdf day18.pdf
4/28
4/30
Explicit parametric polymorphism day19.pdf Final review (solutions)