Programming language theory and practice

Course Information

The course is mainly for students interested in fundamentals of software, industry peers engaged in software development, etc. No pre-requisite knowledge is requred and the course strives to spark interest in subjects related to fundamentals in software development among students. We may publish some more advanced courses in the future.

The programming language for this course will be Rescript.


Date Topic Slides Example code
Week 0 Introduction to language design and implementation Lec0.pdf
Week 1 ReScript crash course Lec1.pdf N/A
Week 2 λ calculus Lec2-part1.pdf, Lec2-part2.pdf
Week 3 Names,binders, De Bruijn index Lec3.pdf
Week 4 Closure calculus TBD TBD
Week 5 Pattern matching TBD TBD
Week 6 Stack machine and compilation TBD TBD
Week 7 WebAssembly TBD TBD
Week 8 Garbage collection and memory management TBD TBD
Week 9 Type checking TBD TBD
Week 10 Unification, type inference, bidirectional type checking TBD TBD
Week 11 & 12 Formal verification, Guest lectures TBD TBD