All notes from my research on theory of programming languages λ, compilers, interpreters, functional programming, formal methods, logic etc.
- General
- Books
- Courses/Materials
- Compiler/Interpreters
- Logic
- Formal Methods
- Twitch/YouTube
- Talks
- Communities
- People
- Others
- Lambda The Ultimate - Lambda The Ultimate includes many members who study programming languages daily for years, either in academia or in industry settings
- Classic Papers in Programming Languages and Logic
- Advanced Programming Languages - This page collects author's personal links in the field of Programming Languages
- The Study of Programming Languages - Ray Total's this course explains you how to study programming languages
- Programming Languages Reading List This is a list of valuable resources for programming language design and implementation.
- Programming Language Theory Texts This is a collection of programming language theory texts and resources, all of which are freely available over the Internet.
- OPLSS
- A Self-Learning, Modern Computer Science Curriculum - This is a collection of modern resources on various undergrad level computer science topics, for someone with an interest in theory.
- Type Theory - Workshop on type theory
- Type Theory Resources - A Github repository for a collection of resources for type theory
- Type Theory For All - Type Theory Forall is a podcast hosted by Pedro Abreu (Pronounced ‘Ahbrel’), PhD Student in Programming Languages at Purdue University.
- Classics of Computer Science - Classics Papers in Computer Science
- IMC010: Type Theory and Coq
- Program by Design
- Supplemental Materials for HWTP
- Common Lisp Project 1: Turing Machine - In part one of this project the initial language of a turing machine is laid out and VERY simple functions are written to do basic math
- Thinking with types (Chapter1: The Algebra Behind Types) - He is looking at the book by Sandy Maguire “Thinking with types”
- Algebraic Data Types Theory
- Programing Language Design w/ Prof. Politz
- Types and Why You Should Care - JaneStreet
- What is PL research?
- Growing a Language
- Racket: A Programming-Language Programming Language
- Crash Course on Notation in Programming Language Theory
- Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
- Propositions as Types by Philip Wadler
- Philip Wadler and Erik Meijer: On Programming Language Theory and Practice
- A Programmable Programming Language
- Linguistics and Compilers
- Produce clean APIs with algebraic design
- Haskell Kata - Algebra-Driven Design - Bowling Game
- Playing the Game with PLT Redex
- Jean Yang on An Axiomatic Basis for Computer Programming
- Generating Programs from Types
- Coffee Compiler Club
- Resources for Programming Language Research - A collection of information and resources for research in programming language theory, design, implementation, and related areas
- Programming Language Journals, Books, and Publishers - A collection of materials related to programming languages
- List of books for Theory of Programming Languages - List of books for programming languages theory
- Practical Foundations for Programming Languages
- Software Foundations - Programming Language Foundations - This electronic book is a survey of basic concepts in the mathematical study of programs and programming languages
- Types and Programming Languages - This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages.
- Concepts, Techniques, and Models of Computer Programming - The book is organized around programming concepts. It starts with a small language, Mozart, containing just a few concepts.
- Essentials of Programming Languages
- [Programming Languages - Application and Interpretation](PLAI is designed for upper-level courses that introduce the main ideas of programming languages.)
- Object-Oriented Programming Languages: Application and Interpretation
- How to Design Programs - Systematic Program Design
- A Data-Centric Introduction to Computing - This book is an introduction to computer science
- An Introduction to Functional Programming Through Lambda Calculus
- Implementing Functional Languages
- Thinking with TypesType-Level Programming in Haskell
- CS520 - Theories Of Programming Languages [Lecture Videos]
- CSE340 - Principles of Programming Languages [Lecture Videos]
- CS 3520/6520 - Programming Languages [Lecture Videos]
- 301 - Organization of Programming Languages [Lecture Videos]
- LINFO1131 - Advanced programming language concepts [Lecture Videos]
- COS 326 - Functional Programming [Lecture Videos]
- CS3110 - Functional Data Structures [Lecture Videos]
- CSE230 - Principles/Programming Languages [Lecture Videos]
- CIS352 - Principles of Programming Languages [Lecture Videos]
- CSCI1730 - Programming Languages - Application and Interpretation [Lecture Videos]
- CS2500 - Fundamentals of Computer Science [Lecture Videos]
- Benjamin Pierce - Software foundations - YouTube playlist
- CS3MI3 - Principles of Programming Languages - YouTube playlist
- Essentials of Programming Languages
- CMSC330 - Organization of Programming Languages
- Ray Total Courses
- Programming Languages and Logic
- CS242 - Programming Languages - Stanford
- CS019 - Accelerated Introduction to Computer Science
- Programming Languages Course given by DCC-UFMG
- Theory of Programming Languages
- CPSC 311 Definition of Programming Languages: "Lambda Bound"
- Fundamentals 1
- Fundamentals 2
- Matthias Felleisen - Principles of Programming Languages
- Matthias Felleisen - Intensive Principles of Programming Languages
- History of Programming Languages
- Accelerated 1
- Hack Your Own Language
- All the courses Matthias Felleisen teach
- Programming Language Foundations in Agda
- COP 4020 - Programming Languages I
- Concepts in Programming Languages
- CS 242: Programming Languages, Fall 2019
- Principles of Compiler Design [Lecture Videos]
- Indiana University Compiler Course [Lecture Videos]
- Jay McCarthy - 406 Compiler Construction [Lecture Videos]
- CSE 131 - Compiler Construction [Lecture Videos]
- CS164 Programming Languages and Compilers [Lecture Videos]
- CMSC 430: Design and Implementation of Programming Languages [Lecture Videos]
- CMU - CS6120 - Advanced Compilers [Lecture Videos]
- Compilers Design Recipe
- Introduction to Compiler Construction
- Programming Language Zoo [Github]
- Building Strema: a compiler targeting JavaScript in Haskell - Live coding a compiler for a custom type inferred programming language with ADTs and pattern matching called Strema, and targeting JavaScript.
- Writing a compiler. Term reduction via substitution - This is the first video in a series focused on implementing a compiler backend for a small functional language which is a variation of the untyped λ-calculus.
- Matthew Flatt - DSL Embedding in Racket - This tutorial will provide a refresher on Lisp-style extensibility, cover Scheme-style pattern-matching and procedural macros
- Ryan Newton - DSL Embedding in Haskell - This will cover front-end topics, such as syntax capture, type checking, and Template Haskell; middle-end topics including compiler-construction techniques in Haskell
- Haskell Tutorial - 12 - Writing Parsers From Scratch - In this tutorial they go all the way to first principles in top down parser design and build simple parser combinators that they will use next week to make a parser for their interpreter.
- Writing a Parser in Haskell - Compiler Tutorial
- Haskell Parser Combinators: Parsing CSS
- Learning F# by Designing Your Own Language by Oleksii Holub
- Rust Programming Crafting Interpreters
- Making a Programming Language in Rust /w SinisterMatrix
- Creating a Programming Language with Rust
- XML Parser in C (Start to Finish)
- Making A Compiler From Strach In C
- All day compiler push
- Writing a Basic Math Expression Parser In JavaScript
- Creating a Common Lisp implementation
- Joel Martin: Make Your Own Lisp Interpreter in 10 Incremental Steps
- Type Inference from Scratch: A Workshop with Christoph Hegemann
- Hjalfi writes an assembler
- Introduction to Logic - Stanford University course on logic fundamentals
- Logic Matters
- Open Logic Project
- Book of Proof - List of video lectures that several professors built online using Book of Proof
- Combinatory Logic - Combinatory logic is a model by which logical statements can be described as a combination of a small number of primitive elements called combinators
- The Xena Project
- Linear Logic in nLab
- Introduction/Logic of propositions and predicates
- Introduction to Logic for Computer Science
- Frank Pfenning - Linear Logic Lecture
- A formal definition of the language of propositional logic
- Binary Propositions, De Morgan’s Law, What is an Implication — Tutorial 1/4
- Stan Warford - Formal Methods [Lecture Videos] [Book - Logical Approach to Discrete Math]
- Formal Methods of Software Design[Lecture Videos] [Book - A Practical Theory Of Programming]
- The Philosophy of Computer Science
- What are Formal Methods? | Compiler with Hoare logic
- Abstract Interpretation for Program Verification (ft. Viktor Kuncak)
- Pawel Szulc - Formal verification applied (with TLA+)
- Formal Methods: A Deep Dive Using the Coq Proof Assistant
- ACM SIGPLAN
- gilmi
- Michael Gilliland
- Bitwise
- Tweag
- Edward Knett
- John Cinnamond
- Brian McKenna
- jappie-strims
- Chiroptical
- CmdvTv
- ekmett
- tscoding
- puffnfresh
- teej_dv
- nicuveo
- gillchristian
- zer0c__
- jb55_
- Identity GS
- vivalambda
- MOOC nerds - Discord channel for functional computer science series
- Programming Languages - There are plenty of programming languages created by community members
- Multiprocess community - The core of the community is around software internals
- Declarative Programming Streams - A collection of streamers
- Haskell Twitch
- Functional Programming
- Twitter list for PL people - A list of people related to programming language theory created by me
- Matthias Felleisen
- Shriram Krishnamurthi
- Joe Gibbs Politz
- John C. Reynolds
- Jay McCarthy [Blog]
- Kristopher Micinski
- thesephist
- Paulette Koronkevich
- Programming Language Theory[Github]
- https://github.com/imteekay/programming-language-research
- https://github.com/lucasviola/awesome-functional-programming
- https://github.com/imteekay/functional-programming-learning-path
- https://github.com/xgrommx/awesome-functional-programming
- https://github.com/prathyvsh/history-of-programming-languages
- https://github.com/prathyvsh/use-of-maths-in-programming
- https://github.com/timxor/typetheory