• Stars
    star
    5,039
  • Rank 8,274 (Top 0.2 %)
  • Language
    CSS
  • Created over 11 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Programming Language Theory λΠ
layout title
page
Programming Language Theory

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

  • [Higher Type Theory]({{site.github.url | replace: 'http://', '//'}}/higher-type-theory/)
  • [Module Systems]({{site.github.url | replace: 'http://', '//'}}/module-systems/)
  • [Effect Systems]({{site.github.url | replace: 'http://', '//'}}/effect-systems/)

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

  • [Recursion Schemes]({{site.github.url | replace: 'http://', '//'}}/category-theory/recursion-schemes.html)

Mathematics

Some related maths resources.

Mathematical Literacy/Thinking

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

Algebra

Other collections

More Repositories

1

gtk-examples

Examples from "Developing Linux Applications with GTK+ and GDK" by Eric Harlow
C
65
star
2

tiger-ml

Compiler for Tiger based on Andrew Appel's Modern Compiler Implementation in ML
C
54
star
3

lennart-lambda

λλλλ Lennart Augustsson's λ-calculus cooked four ways
Haskell
45
star
4

playground

👨🏻‍🎓 Playground for learning programming languages
Standard ML
24
star
5

tdd-with-idris

Working through Type-Driven Development with Idris
Idris
24
star
6

mincaml

The very excellent, educational MinCaml project of Eijiro Sumii is now available at https://github.com/esumii/min-caml
OCaml
17
star
7

catalina-nix-upgrade

Shell
12
star
8

shelly

🐚 Dotfiles and shell utilities
Shell
12
star
9

blue

Matt Stall's C# compiler in C# http://blogs.msdn.com/b/jmstall/archive/2005/02/06/368192.aspx
C#
9
star
10

sauerbraten

A git mirror of the sauerbraten SVN repo
C++
8
star
11

lennart-lambda-cube

Lennart Augustsson's lamda cube
Haskell
8
star
12

PLAR

Code from book "Handbook of Practical Logic and Automated Reasoning" by John Harrison
OCaml
6
star
13

idris-sdl2

SDL2 binding for Idris
Idris
5
star
14

plc-sestoft

Programming Language Concepts by Peter Sestoft
F#
4
star
15

codemirror

clone of http://marijnhaverbeke.nl/git/codemirror
JavaScript
4
star
16

idris-miniml

Compiler for MiniML in Idris
Idris
4
star
17

steshaw.org

🏠 Homepage λΠ
JavaScript
3
star
18

zendesk-hs

Zendesk client library
Haskell
3
star
19

huttons-razor

Quick implemention of Hutton's Razor
Shell
3
star
20

idris-calc

A simple arithmetic calculator written in Idris.
Idris
3
star
21

turtle-shell-with-nix

Turtle shell example with Nix
Nix
2
star
22

haskell-playground

Haskell
2
star
23

babycc

A journey through the Crenshaw compiler tutorial using C and x86 from back in 2004
C
2
star
24

go-playground

Go
2
star
25

dhall-playground

Shell
2
star
26

tock

Haskell
2
star
27

idris-elisp

Haskell
2
star
28

hsChess

Haskell
2
star
29

timedot-vim

Vim Script
2
star
30

language-swift2-quote

💫 Swift 2.1 parser and pretty-printer 🚧💔😢
Haskell
2
star
31

starred

A curated list of my GitHub stars!
2
star
32

steshaw

1
star
33

go-nix-flakes-demo

Nix
1
star
34

rustlings

Rust
1
star
35

mongodb-example

MongoDB example in Haskell
Haskell
1
star
36

schemey

Scheme interpreter based on "Write Yourself a Scheme in 48 Hours"
Haskell
1
star
37

haskell-shebang-examples

Haskell shebang examples
Haskell
1
star
38

pi-forall-playground

Playground for pi-forall
Haskell
1
star
39

lens-playground

Haskell
1
star
40

http-post-example.hs

Haskell
1
star
41

hbound

Haskell
1
star
42

google-logging-example

Example Google/Stackdriver Logging using gogol-logging
Haskell
1
star
43

metathesis

LaTeX thesis template from http://www.cs.mun.ca/~donald/metathesis/
1
star
44

yesod-postgresql-example

Haskell
1
star
45

openapitools-example

Shell
1
star
46

euler

My Project Euler solutions, in various languages (intended to observe differences in languages)
Haskell
1
star
47

scala-playground

Scala
1
star
48

kotlin-playground

Kotlin
1
star
49

hello-arm-m1

Assembly
1
star
50

all-bench

Haskell
1
star
51

nix-docker-example

Shell
1
star
52

nix-playground

Nix
1
star
53

licence-trials

Ruby
1
star
54

cube-fu

Wouter van Oortmerssen's Cube engine/game, including changes to compile/run cleanly on Mac.
C++
1
star
55

ksonnet-example

1
star
56

hello-web

Haskell
1
star
57

merge-shell-example.nix

Nix
1
star
58

nix-dev-env-example

Shell
1
star
59

steshaw.github.io

Generated files GitHub Pages hosted steshaw.org
JavaScript
1
star
60

hello-lifty-lift

Blank project with SBT 0.7.5.RC0, Lifty 1.5 and Lift 2.2
Scala
1
star
61

quake2-gwt-port

Java
1
star
62

rust-playground

Rust
1
star
63

idris-elba-example

Idris
1
star
64

relude-example

Haskell
1
star
65

adt-in-java-with-fold

Encoding algebraic data types in Java using fold
Java
1
star
66

lean4-playground

lean4-playground
Lean
1
star
67

niv-shim-example

niv-shim-example
Nix
1
star
68

swift-playground

swift-playground
Swift
1
star
69

servant-example

Haskell
1
star
70

cloud-haskell-tutorial

Haskell
1
star
71

dEngine

C
1
star
72

hello-aws

Rust
1
star