CS 463 - Spring 2024
Schedule
1 Texts
ChX
readings refer to our main text, Concepts of Programming Languages.- RWH: readings refer to Real World Haskell, freely available online.
- LYAHFGG: You should also read Learn You a Haskell for Great Good! as an additional study for a quirky, free introduction to Haskell.
- other readings for languages will be posted as needed throughout the semester.
2 Order of Topics (Spring 2024)
We will approach topics in the following order. We will likely drift ahead/behind the suggested timing, so please just try to keep current with the readings as we approach the topics in lecture.
Week | Topic | Readings |
---|---|---|
1 | ||
Class Welcome/expectations | Ch1, (Ch2 optional), Ch3 | |
Untyped Lambda Calculus | ||
- evaluation, extending the language | ||
2 | ||
Evaluation Criteria | (Ch3) | |
Syntax and Semantics | ||
BNFs, Parse Trees | ||
Static Semantics, Attribute Grammars | ||
3 | ||
Dynamic Semantics | (Ch3) | |
- Operational, Denotational, Axiomatic | ||
4 | ||
LANG: Haskell Intro | install Haskell, LYAHFGG, RWH1-4 | |
5 | ||
More Haskell | ||
6 | ||
LANG: Lisp | Tutorial: Learn Lisp Fast! (via Prof. Luke) | |
Tutorial: Common Lisp(book) | ||
7 | ||
REVIEW | ||
MIDTERM, Thursday Feb 29th in class | ||
8 | ||
Typed Lambda Calculus | (Types and Programming Languages | |
- type checking, environment | - access digital copy via library) | |
- extensions | ||
9 | ||
Concurrency: basics | Ch13 | |
- semaphores, mutexes, monitors | ||
Threads, pthreads | ||
10 | ||
Haskell, pt. 2 | ||
- ADTs | ||
- list comprehensions | RWH 6 | |
- type classes | LYAHFGG 8, Making our own typeclasses | |
11 | ||
Concurrency in Haskell | RWH 24 | |
- monads | ||
- forkIO, MVar, channels | ||
12 | ||
Subprograms: parameter conventions | Ch9 | |
Polymorphism | ||
Impementing subprograms | Ch10 | |
Exception Handling, Event Handling | Ch14 | |
- setjmp/longjmp vs. tracebacks | ||
Names, Bindings | Ch5 | |
Scope, Lifetime | Java visibility | |
13 | ||
Extra Lang (if time) | ||
14 | ||
Catch up, Review | ||
Final Exam | Tuesday, May 7th 2024, 1:30pm-4:15pm | |
Original Exams Schedule |