Programming Languages Pragmatics, 2nd Edition – A Review

Long time since my last book review. I just finished reading Programming Language Pragmatics, by Michael L. Scott.

The book describes how diverse programming languages implement diverse features and paradigms. It uses a cleat language and it is full of examples.

It starts really well with an overview of the steps executed during parsing and compilation. It has the correct pace for newbies in those areas (like me).

The second part starts with a nice chapter about evaluation. The next chapter begins with a too brief discussion on type systems, you can’t really get much information from it and this is something that someone that wants to learn more about programming languages should really care about. It then goes on describing various classic data structures like arrays and registers and how some languages implement them.

The chapter on subroutines is ok, you can get a nice overview about some major topics and their implementations. The chapter on Object-Orientation was really disappointing. The book focus on class-based OO only and the chapter itself is just a couple pages long, most of it dedicated to method binding.

Next part is about “Alternative” programming models: functional programming, logic programming and concurrency. It has a pretty superficial introduction of the first two and a more extended coverage of concurrency.

The concurrency chapter is divided in two, shared memory and message passing. The first one is ok but I really expected more from the message passing part. It has a good start with some basic theory and then moves completely to some discussions about UDP, TCP and RPC. I was expecting it to talk about message-passing concurrency model but that part is pretty much all about parallel -not concurrent- computing.

My problem with the book is probably due to the fact that I expected more. It’s a 800+ pages book and although it covers lots of topics it doesn’t talk much about them. Monads are briefly described in a couple paragraphs, for example.

One interesting thing is that the book is about how not why. It doesn’t go anywhere deep on the problems, just focus on how multiple languages solve that. Also I’m not sure how people that are not proficient in several languages will react to the examples, they require a bit of knowledge in multiple platforms to be understood.

Also the book is way too focused in mainstream paradigms. I would expect it to talk more about declarative languages, non-class-based objects and other topics that are not part of mainstream languages (C#, Java an Python, pretty much).

It’s a good book overall. If you just moved away from your Java/C# comfort zone to some odd platform it can help you a lot understanding what the hell people talk about in their mailing lists. If you are more interested in paradigms I’d recommend to stick to SICP.

1 Response to “Programming Languages Pragmatics, 2nd Edition – A Review”


  1. 1 Thiago Silva Feb 4th, 2009 at 11:51 am

    Hi,

    I agree with you. The lack of non-mainstream PL content is frustrating. However, I think the value of this book is in it’s biography - a great deal of the contents is referenced. It is certainly not a deep reading, but is large in scope (with directions, if you want to go deep). Perhaps, not broader enough….

    Thiago Silva

Leave a Reply








Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.