2 ms·
"Don't forget Peter van Roys Concepts, Techniques and Models of Computer Programming" yes I have this too. But I haven't worked through it so I didn't want to
by plinkplonk 17y ago
"Don't forget Peter van Roys Concepts, Techniques and Models of Computer Programming"
yes I have this too. But I haven't worked through it so I didn't want to reccomend it blindly. Many talented hackers(e.g Peter Norvig) say good things about this book so I am sure it is great. The language it uses (Oz) is a bit flaky wrt syntax but VERY powerful.
Another recent lovely book, though a bit on the formal side is Gifford and Turbak'S Design Concepts In programming languages. (Another 1000 + pages !! - the road to compiler gurudom has many 1000 page books to work through!).I am working though this and I am enjoying it thoroughly. I hope to finish it by the end of this year.
- dkersten 17y agoBy the way, thanks for the book suggestions - some great ones there that I have yet to read! CTM is good, it covers a lot of theory of programming techniques and IMHO a must read for anybody interested in programming language design. Oz syntax is a bit quirky and weird, but the language seems to be quite powerful and very flexible, supporting many varied types of programming. I have not read all of it yet, but most - not exactly light reading :-) I will definitely check out the other books which you mentioned though.
- plinkplonk 17y ago"By the way, thanks for the book suggestions - some great ones there that I have yet to read!" You are welcome! I had to work through some really awful books before I put all the pieces together and stumbled onto the good books. Even most good books omit some crucial piece (E.g EOPL , as good as it is, doesn't say anything about how to write a garbage collector/memory management infrastructure, SICP doesn't deal with lexing/parsing or type checking and so on.)
- silentbicycle 17y agoCTM is a great book, but not about programming language implementation so much as a tour through the big ideas in different programming paradigms. I can't recommend it too highly - it's one of the most readable textbooks I've seen, and it's refreshingly non-dogmatic about the subject material. Usually, language books are heavy-handed about OOP / Lisp / FP / whatever being best, but CTM's thesis is that, since they all have strengths and weaknesses, it's most practical to learn what they do best and how to use them in a complementary fashion. It covers declarative programming, functional programming, several concurrency models, logic programming, object-oriented programming, dataflow programming, and probably a half dozen things I'm forgetting. The book uses Oz* , with major asides using Haskell, Erlang, Java, Prolog, and probably a couple others. There's a draft PDF floating around, but if you like it, I'd highly recommend buying the book. (Same with SICP.) * Which seems like an interesting language, though I've never gotten it to build on OpenBSD, so I've done exercises in OCaml, Lua, or Scheme instead.