3 ms·
I read EOPL independently in high school, and I thoroughly enjoyed it because it had a good balance between theory and practice. I would consider Types and Prog
by siraben 6y ago
I read EOPL independently in high school, and I thoroughly enjoyed it because it had a good balance between theory and practice. I would consider Types and Programming Languages to be theory-based, EOPL in the middle and SICP to be practice-based. (My personal order was SICP -> EOPL -> TAPL)
It's a great exercise to implement[0] the languages from EOPL. I think it fits a lot better in a statically typed language like Haskell (the parsing can be done with parser combinators), since they essentially have to re-create ADTs with macros in Scheme, when they could be easily embedded into the host language. The effectful interpreters could have their effects encapsulated in a monad transformer stack.
[0] https://github.com/siraben/eopl https://github.com/siraben/eopl
- dependenttypes 6y agoI would also suggest "Concepts, Techniques, and Models of Computer Programming", "How to Design Programs" (second edition: https://htdp.org/2020-8-1/Book/index.html https://htdp.org/2020-8-1/Book/index.html), and the books in "The little X" series (such as The little schemer).