My intention is for this to be a compilation of things I find cool/useful. My solutions to select exercises from select resources are included. Below is a list of everything I have worked through/am in the process of working through, vaguely sorted into categories.
- Types and Programming Languages by Benjamin C. Pierce (a classic)
- Practical Foundations for Programming Languages by Robert Harper (another classic)
- Oregon Programming Languages Summer School archives
- Amal Ahmed gave some very good lectures on logical relations in 2023
- Andrej Bauer "Algebraic Effects and Handlers" in 2018
- ...
- Software Foundations series (intro to PLs in Coq, also good intro to Coq in general)
- Certified Programming with Dependent Types by Adam Chlipala (advanced Coq but doesn't assume prior knowledge)
- Introduction to Compilers and Language Design by Douglas Thain
- Crafting Interpreters by Robert Nystrom
- Introduction to the Theory of Computation by Michael Sipser
- First-Order Logic and Automated Theorem Proving by Melvin Fitting
- Category Theory for Programmers by Bartosz Milewski (and accompanying lecture series on YouTube by the same name)
- Algebra: Chapter 0 by Paolo Aluffi (introduction to algebra involving categories)