Last updated: 2021-12-31
In this course we study concepts of programming languages, develop better programming skills, and learn to design your own languages.
Tuesday and Thursday, 15:20 - 16:55, starting from Sep. 14
Room 1118 | Zoom: 361 038 6975, pw: BIMSA
Meng Cao and Pipi Hu
We borrow courseware of CS242@Stanford. Below are local copies of lecture notes, given for your convenience.
Date | Topic | Reading |
---|---|---|
Sep. 14 | Course overview and Haskell | Chap. 5 |
Sep. 16 | Foundations | Ref. 2 |
Sep. 21 | Mid-Autumn holiday | |
Sep. 23 | Foundations, continued: operational semantics. | |
Sep. 26 | Scopes | |
Sep. 28 | Types | Chap. 6 |
Sep. 30 | Type Classes | Chap. 7 |
Oct. 05 | Holiday | |
Oct. 07 | Holiday | |
Oct. 12 | Type Classes, continued | |
Oct. 14 | IO Monad | Chap. 1-2 of Ref.7, Chap. 7 of Ref. 3 |
Oct. 19 | Exceptions and Continuations; Garbage collection | Chap. 8, 3. Sec. 7.3 of Ref. 4 |
Oct. 21 | Memory management and garbage collection | Ref. 5 |
Oct. 26 | Computability and Modularity | Chap. 2, 9 |
Oct. 28 | Object-Oriented Languages | Chap. 10-13 |
Nov. 02 | C++ and Java | |
Nov. 04 | Subtyping | |
Nov. 09 | Java implementation | |
Nov. 11 | Templates and Generics | Ref. 8, 9, 10 |
Nov. 16 | Concurrency, notes from Herlihy and Shavit. ) | |
Nov. 18 | Concurrency: Linearizability | |
Nov. 23 | Concurrency: List algorithms | |
Nov. 25 | Concurrency: List algorithms, continued | |
Nov. 30 | Relaxed memory model | Ref. 6 |
Dec. 02 | Relaxed memory model, continued |