Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Programming Languages: Application and Interpretation (2021) (brown.edu)
108 points by webmaven on April 30, 2022 | hide | past | favorite | 18 comments


Great book. Will change how you think about programming languages, and not many books can make that claim.

Good news is the author* is working on a new version.

* https://parentheticallyspeaking.org/about/


The third edition will be a while coming, though. I'm driving the third edition a lot more from computing education research that we are doing, and that research is informing a lot about the design and even the approach.


Tangentially related, but I have found the PL course [0] on Coursera taught by Dan Grossman to be really high-quality and engaging. Learned a lot from it.

[0]: https://www.coursera.org/learn/programming-languages


I will second that heartily. Was one of the more mind expands courses I’ve ever taken.


What are some others, if you don't mind?


Nothing online, I’m afraid. Most of the best classes I’ve taken were at my brick and mortar small liberal arts college and were not computer science. I’ve also taken plenty online courses that I would call useful, and I’m glad I took them [1]. But Grossman’s is the only online course I’ve taken where I felt like there was a deep pleasure and joy in teaching your brain new and unexpected ways to think.

[1] Sedgwick’s algorithms class (useful and clear, but dry as hell), Martin Odersky’s scala course (solid, but probably a little dated by now), several others not worth mentioning.


Thanks.

I like learning new stuff, and expand my mind.

There are many courses on my to-do list that I learned about from HN.

I have found Sedgewick's course to be very dry (not intellectually, but physical vibe-wise) as well and was annoyed that I had to write Java.

Skiena, DPV, and a PragProg book ultimately taught me algorithms.

I have the Odersky course on my list as well.


From the same author: https://dcic-world.org/

One of the best beginner learning resources for getting into programming.


It seems very well balanced, a good mix of simple yet precise and advanced. Thanks.


I enjoyed going through Brown's Introduction to Programming Languages (2012) which uses the book.

http://cs.brown.edu/courses/cs173/2012/


We created a MOOC version of it that is archived here, for anyone who wants to follow it: https://cs.brown.edu/courses/cs173/2012/OnLine/


Any good recommendations for types, as used by programming languages? Is "Types and Programming Languages" by Pierce still the best intro, even though it's 20 years old?


You could try chapter 15 of TFA (http://cs.brown.edu/courses/cs173/2012/book/types.html); otherwise, yes, TaPL is still very good. An alternative (and rather more difficult) path could be to try working through the Programming Language Foundations volume of Software Foundations (https://softwarefoundations.cis.upenn.edu/plf-current/toc.ht...), also by Pierce (and others), which does all its implementation work in Coq (!).


TAPL remains a go-to text for inducting people into PL. I have absolutely no qualms recommending it, because we still use the techniques it teaches.

It will not teach you to implement a full-blown language with a performant runtime or anything like that. It is absolutely a book about theory. But I don't think any part of it is specifically outdated, except maybe that it does not reference any more modern languages (which is not much of an issue, in my opinion).


I highly recommend this book. I’m about half way through and it is one of the best on languages that I have read.


is this beginner level course?


From https://www.plai.org/

> PLAI is designed for upper-level courses that introduce the main ideas of programming languages. In the US, it is designed for students in their second- through fourth-years of college, as well as starting graduate students. However, PLAI has been used with students much younger, including in a few select high school classes.


Yeah, it's definitely not for beginners. It assumes you have a fairly good understanding of programming, and now care to make sense out of languages.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: