ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Essentials of Programming Languages 2ed
Daniel Friedmann et al.
0 262 06217 8
MIT Press
Francis Glassborow
Appeared in:
There was recently a thread on
concerned with choosing a programming language or languages suitable for CS courses at college/university level. One important feature is trying to tie down what such courses should be doing. Teaching programming as a tool for some other course (engineering, mathematics etc.) is a different issue. In those cases the language should be chosen because it is a good tool for the main subject. However CS courses should address computing and programming as major issues. One element that I would consider important is an understanding of the fundamentals of computer languages. This should be taught is such a way that the successful student understands that different languages have different objectives and so the concept of a single best language is nonsense.

The main objective of the authors of this book is to present the fundamentals of computer languages in an accessible way. They choose to work by constructing interpreters (in Scheme) for a number of small languages that can be used to illustrate specific features such as types, parameter passing techniques etc.

I found the book well written, and comfortable to read but lacking access to Scheme and the time taken to get to grips with it, I am unable to comment on the code, or practical examples.

This is not a book for the novice or, in my opinion, the first year student. However, I would hope (probably in vain) that all those successfully completing a degree course in Computer Science, Software Engineering etc. would have studied the subject matter it covers. This book seems to me to be a good text for providing such coverage. It has the added advantage that the diligent student (formal or otherwise) can cover the ground even if their course fails (or failed) to do so.

If you are the kind of professional who wants to understand more than the syntax of a single language then this book is worth the price and the time taken to study it. It will not, in itself, make you a better programmer but it will give you a better understanding of the tools of your trade.

Put simply, this is a book aimed at helping you understand the semantics of code written in a variety of different languages. Achieving such understanding will not be easy, but is surely worth while.