
Practical Foundations for Programming Languages
by Robert Harper · first published 2016
63% recommend33% neutral4% critical
Why HN recommends it
Clear, concise treatment of type theory and language design, broader than Pierce's TAPL. Suits readers with some PL theory who want a reference that helps avoid design mistakes in a DSL or language.
Summarised by Claude from recommending comments
"This book offers a fresh perspective on the fundamentals of programming languages through the use of type theory"-- "Syntactic Objects Programming languages are languages, a means of expressing computations in a form comprehensible to both people and machines. The syntax of a language specifies the means by which various sorts of phrases (expressions, commands, declarations, and so forth) may be combined to form programs. But what sort of thing are these phrases? What is a program made of? The informal concept of syntax may be seen to involve several distinct concepts. The surface, or concre
Affiliate links. As an Amazon Associate I earn from qualifying purchases.







…this is an Erlang book (I don't really know Erlang), 1/3 of the book is devoted to designing scalable and robust distributed systems in a general setting which I found the book worth it on it's own. # Practical Foundations for Programming Languages https://www.amazon.com/gp/product/1107150302/ref=as_li_ss_tl... Not much to say, probably THE book on programming language theory. # A First Course in Network Theory https://www.amazon.com/First-Course-Network-Theory/dp/019872...…
on “Ask HN: What's the best computer science book you've read recently?” ↗…https://en.wikipedia.org/wiki/Mathematical_beauty [0.b] https://homotopytypetheory.org/book/ -- think of this as the best minds in aggregate sit down at Princeton to write one of the best texts on Proof theory, type theory and logic. Practical Foundations for Programming Languages (Robert Harper) is a good companion text. [1] https://en.wikipedia.org/wiki/List_of_academic_journals_by_p...
on “Let’s make peer review scientific” ↗My understanding of types took a big step forward when I read some of Robert Harper's stuff. In particular, the blog post, Dynamic Languages are Static Languages, and his book, Practical Foundations for Programming Languages. (The book is a tome and I've only read parts of it but it's very good). When it comes to understanding memory in C, another important aspect is understanding how linkers and loaders work. Also, it's…
on “How to Think About Variables in C” ↗Another excellent and up-to-date resource is Practical Foundations for Programming Languages by Robert Harper. http://amzn.com/1107029570 Harper hosts an online version of this book: http://www.cs.cmu.edu/~rwh/plbook/book.pdf.
on ““What part of Milner-Hindley do you not understand?”” ↗I'm in the midst of reading Types and Programming Languages right now. I'm also reading the more recent Practical Foundations for Programming Languages by Robert Harper. It's written for a similar audience. I would recommend both.
on “So you want to write your own language?” ↗Robert Harper's book Practical Foundations for Programming Languages (free draft) http://www.cs.cmu.edu/~rwh/pfpl.html This book will stop you from making easy mistakes in design of whatever DSL or language you're trying to create. Also see the commentary he keeps on…
on “Ask HN: Resources for building a programming language?” ↗Another similar book is Harper's Practical Foundations for Programming Languages[1]. I had the privilege of taking a course[2] about this kind of stuff with Prof. Harper at CMU. [1]: https://www.amazon.com/Practical-Foundations-Programming-Lan... [2]: https://www.cs.cmu.edu/~rwh/courses/ppl/
on “Developing a Statically Typed Programming Language (2017)” ↗…Computer Science" by Zhaouhui Luo "Type-Driven Development with Idris" by Edwin Brady "Gentle Introduction to Dependent Types with Idris" by Boro Sitnikovski "Types and Programming Languages" by Pierce "Practical Foundations for Programming Languages" by Robert Harper (or any of his YouTube videos re/Type Theory) "The Little Typer" by Friedman and Christiansen "Modal Homotopy Type Theory: The Prospect of a New Logic for Philosophy" by David Corfield…
on “Why is it worth spending time on type theory? (2013)” ↗Here's a different book you might be interested in ("Practical Foundations for Programming Languages": http://www.cs.cmu.edu/~rwh/plbook/book.pdf It gets pretty math-heavy at times, at least in the beginning (you can probably skip the first chapter if it's too rough), but ultimately the book is about…
on “Learn C and build your own Lisp” ↗…Awodey's CT book, which is a path straight out of that Reddit thread. The second is for PLT/type theory, and starts with Software Foundations by Pierce, then Types and Programming Languages by Pierce, then Practical Foundations for Programming Languages by Harper (for completeness, as I have heard pros and cons for both), then maybe moving to Advanced Topics in Types and Programming Languages and such. Mix in some Oregon Programming Language Summer…
on “A Path to Enlightenment in Programming Language Theory” ↗…borrowed from fairly standard type-theory-of-functional-languages stuff. Standard books to read here are Types and Programming Languages by Benjamin Pierce (https://www.cis.upenn.edu/~bcpierce/tapl/); or Practical Foundations for Programming Languages by Bob Harper (https://www.cs.cmu.edu/~rwh/plbook/book.pdf). Those are pretty heavy books that cover a lot of ground, including stuff that's mostly irrelevant to my work. If you're interested, though,…
on “Ask HN: Which people and groups are researching new approaches to programming?” ↗I think you'd really enjoy Practical Foundations for Programming Languages (it's one of the first books suggested in the original article). It approaches language design like you say: start with the essence of the feature, don't worry about the syntax. It analyzes each feature…
on “Resources on creating programming languages” ↗I'm trying to write up a blog post about this now. A really good presentation focused on types and programming languages is available in the middle chapters of Practical Foundations for Programming Languages. I originally learned about it from studying Aczel's Antifoundation Axiom from Barwise and Moss' Vicious Circles[0]---in there you can get a much more mathematical foundationalist POV---but Harper's book…
on “Clojure's Transducers are as fundamental as function composition” ↗Practical Foundations for Programming Languages by Bob Harper is really good, plus there's a free draft of the second version on the author's site http://www.cs.cmu.edu/~rwh/pfpl.html I always go to the book author's page first not only to get the…
on “Ask HN: What's the best computer science book you've read recently?” ↗…but approach the problem from two different sides. I find this sort of stuff fascinating! Some of my favorite articles dealing with these sorts of nuances: - Typed Tagless Final Interpretters[1] - Practical Foundations for Programming Languages, Chapter 15 "Inductive and Coinductive Types"[2] [1]: http://okmij.org/ftp/tagless-final/course/lecture.pdf [2]: http://www.cs.cmu.edu/~rwh/pfpl.html
on “Pattern Matching with TypeScript” ↗