#134 overall
Programming Languages, Application and Interpretation
Brown University
3 recommenders · 3 threads · recommended in 3 years, 2015–2018 · score 3.3
A Brown University course and free textbook, "Programming Languages: Application and Interpretation", that teaches language design and semantics by building interpreters, skipping lexing and parsing. Topics include lexical scope, first-class functions, and objects.
Commenters call it an undergraduate PL textbook that gets straight to semantics without spending time on lexing and parsing, and they note it is free to read online.
Programming Languagesintermediatefreemixed#programming languages#interpreters#semantics#lexical scope#racket#shriram krishnamurthi
Recommendations by year
20062026
I've heard rave reviews of Joy of Clojure as a good book to "get it". I found I really had to work at the problem from several angles before it "clicked".
I started with Land of Lisp, but it felt very arcane to me at the time. I would copy in code from the book, and then look back at just jibberish. I gave up on that a few chapters in. Then I made that site in Clojure, one error at a time, pounding like a monkey until it worked. I then read Clojure Programming twice, followed by working through Let Over Lambda. About halfway through Let Over Lambda, I think it "clicked". I finished with an amazing online course in Programming Languages through Brown University. I finished with SICP chapters 1-3.
Nothing worthwhile is ever easy. If you need any help please reach out, you can't waste my time.
I suggest "Programming Languages: Application and Interpretation", available free here: http://cs.brown.edu/courses/cs173/2012/book/ It's an undergraduate-level programming languages class textbook.
Other books burn a lot of time on things like lexing and parsing; this one does not. In the lisp tradition, it assumes s-expressions and gets to the juicy bits of programming language semantics immediately: lexical scope, first class functions, objects, etc.
I've been taking a PLT[0] class in school and while the list above is extremely comprehensive and thorough, I'd argue that you do not need to read up all of it to get a good idea of programming languages.
Without even learning all the theory, you can get pretty far ahead (IMHO) in a building your own programming language (if that's the goal). The two resources that I've found invaluable are - the prog lang course[1] by Dan Grossman and PLAI[2] by Shriram. Lastly, there's also a whole bunch of interesting university courses that you can refer to - https://github.com/prakhar1989/awesome-courses#programming-l...
[0] - http://www.cs.columbia.edu/~sedwards/classes/2016/4115-sprin...
[1] - https://www.coursera.org/course/proglang
[2] - http://cs.brown.edu/courses/cs173/2012/book/
I'm having a hard time keeping up with all these awesome classes.
Coursera's PL class is starting in a few days: https://www.coursera.org/course/proglang
Brown's Intro to PL class: http://cs.brown.edu/courses/cs173/2012/Videos/