PLT

Programming Language Theory

Maintained by Steven Shaw and contributors

Programming Language Theory

Learning about Programming Language Theory can be a tough journey, particularly for programming practitioners who haven’t studied it formally. This resource is here to help. Please feel free to get in touch if you have ideas for improvement.

💡 Top Tips

For a quick course in Type Theory, Philip Wadler recommends: Types and Programming Languages, Proofs and Types, followed by Advanced Topics in Types and Programming Languages.

See also Daniel Gratzer’s Learn Type Theory, and Darryl McAdams’s So you want to learn type theory.

Type Theory

Books

Papers

Videos

Subtopics

Programming Languages

Books

  • DCPL - Design Concepts in Programming Languages – Franklyn Turbak and David Gifford, 2008. Course
  • CTM - Concepts, Techniques, and Models of Computer Programming, Peter Van Roy and Seif Haridi
  • EOPL - Essentials of Programming Languages, 3rd Edition - Daniel P. Friedman
  • PLAI - Programming Languages: Application and Interpretation - Shriram Krishnamurthi
  • PAIP Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp - Peter Norvig, 1992
  • PLP Programming Language Pragmatics - Michael L. Scott
  • FSPL The Formal Semantics of Programming Languages - Glynn Winskel
  • PL:BPC Programming Languages: Build, Prove, and Compare - Norman Ramsey

Papers

Compiler Construction

Books

  • MinCaml - A Crash Course for the MinCaml Compiler
  • MCIiML Modern Compiler Implementation in ML - Andrew W. Appel
  • pj-lester-book Implementing functional languages: a tutorial - Simon Peyton Jones and David Lester, 1992
  • slpj-book-1987 - The Implementation of Functional Programming Languages - Simon Peyton Jones - 1987
  • MCD-2e Modern Compiler Design, Second Edition — Dick Grune et al.
  • EaC-2e Engineering a Compiler, 2nd Edition, Cooper and Torczon
  • Compiler Construction, Niklaus Wirth
  • DragonBook - “The Dragon Book” Compilers: Principles, Techniques, and Tools
  • LiSP - Lisp in Small Pieces - Christian Queinnec
  • CwC Compiling with Continuations - Andrew W. Appel
  • Static Program Analysis, Anders Møller and Michael I. Schwartzbach
  • List of compiler books at the GCC Wiki

Papers

Videos

Runtime systems

Books

Papers

Functional Programming

Books

  • Bird and Wadler - Introduction to Functional Programming, 1st Edition - Bird and Wadler
  • AoP - The Algebra of Programming - Richard Bird, Oege de Moor
  • Programming in Haskell — Graham Hutton (2007)
  • RWH - Real World Haskell - Bryan O’Sullivan, Don Stewart, and John Goerzen
  • FPiS - Functional Programming in Scala - Paul Chiusano and Rúnar Bjarnason
  • SICP, Structure and Interpretation of Computer Programs, by Abelson, Sussman, and Sussman
  • PCPH - Parallel and Concurrent Programming in Haskell - Simon Marlow
  • RWOC - Real World OCaml - Jason Hickey, Anil Madhavapeddy, and Yaron Minsky
  • Developing Applications With OCaml — Emmanuel Chailloux, Pascal Manoury and Bruno Pagano (2000)
  • BTLS - The Little Schemer - Daniel P. Friedman, Matthias Felleisen
  • BTSS - The Seasoned Schemer - Daniel P. Friedman, Matthias Felleisen
  • BTML - The Little MLer - Matthias Felleisen, Daniel P. Friedman
  • The Reasoned Schemer and miniKanren
  • HTDP - How to Design Programs - Matthias Felleisen, Robert Findler, Matthew Flatt, Shriram Krishnamurthi
  • HR - The Haskell Road to Logic, Maths and Programming - 2nd Ed. - Kees Doets, Jan van Eijck pdf
  • A Book of Abstract Algebra - 2nd Ed. - Charles C. Pinter booko
  • Purely Functional Data Structures - Chris Okasaki phd-thesis in pdf paperback@booko More purely functional data structures

Papers

Videos

Category Theory

Philip Wadler’s advice here is “read Pierce for motivation, Mac Lane for the presentation of the maths”.

Books

Journals

  • TAC - Theory and Applications of Categories

Subtopics

Mathematics

Some related maths resources.

Mathematical Literacy/Thinking

It can be useful to have some background in mathematical thinking.

Algebra

Other collections