Git Product home page Git Product logo

plt's Introduction

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

plt's People

Contributors

a-pelenitsyn avatar anton-trunov avatar bzy-debug avatar catreadme avatar clehner avatar cmeiklejohn avatar francesco601 avatar grain avatar hawnzug avatar hirrolot avatar imteekay avatar jsyeo avatar lemastero avatar mawuli avatar omentic avatar philippbayer avatar psibi avatar radarhere avatar rowanoulton avatar scorphus avatar sellout avatar sngbd avatar sourabhtk37 avatar steshaw avatar stevenspasbo avatar tombusby avatar tonymorris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

plt's Issues

Add some simpler algebra books

Disclaimer: I haven't read the algebra book you have listed on the repository (although I have a hard copy of one) and as a PL enthusiast I'm planning to read an algebra book soon once I complete the Velleman's book.

That being said I feel both the currently listed books are quite heavy. Maybe a much simpler book should be listed there ? And I'm not the only one feeling that. There was someone else on HN feeling the same: https://news.ycombinator.com/item?id=9760832

I personally don't feel someone can directly jump from Velleman's book to Advanced Modern Algebra. This "top to bottom" may not work. Also, would like to hear your opinion on this ? Did you go directly go to Joseph's Modern Algebra from Velleman's book ?

Many links are broken

I would comment which if it were just one or two but there are numerous broken links, even links to your own github repos (the subtopics on recursion schemas).

Add miniKanren

miniKanren seems to be a primer for embedded logic programming. Please add this in Other collection. Your PLT repo is my lifetime learning list goal! Awesome work you did there!

Add effect paper

I think Effect is a nontrivial part of PL, and should be added.

The essence of algol, monads for functional programming, lambda the ultimate goto/assignment/imperative, dijkstra monad, lightweight monadic programming in ML, lazy functional state thread, denotational semantic (with effect)...

Somewhat related: should there also be imperative programming/axiomatic semantic paper/book? The craft of programming/A discipline of programming is both quite nice.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.