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
Basic Category Theory for Computer Scientists
Benjamin C. Pierce
Francis Glassborow
Appeared in:
This book was published a dozen years ago. The reason that I have a copy is that some highly technical discussion of the C++ type system referred repeatedly to Category Theory. Despite my advancing years, I spend a good deal of time trying to bring my knowledge and understanding to the level where I can understand issues relating to language design and implementation. (One of the advantages I have over those who are fully employed in software development is that I have much more time spend on personal development.)

Category Theory is a relatively young branch of pure mathematics derived form algebraic topology. Now it is unlikely that the reader of this review has such a background so be warned that this is tough mathematics for the newcomer; it is tough for me even though my main tutor for my Oxford degree was an algebraic topologist and my own specialism was mathematical logic. This is the kind of book that you study a few pages at a time and that older brains such as mine find hard to turn the acquired knowledge into working knowledge.

Chapter 1 introduces the reader to the basics of Category Theory. There is no reasonable way for me to summarise that. Perhaps the best advise I can give is to suggest you type 'Category Theory' into Google and start looking at some of the early hits from the almost four million you will get.

In Chapter 2 we move on to functors, transformations and adjoints. When you have finished studying (just a reading is insufficient preparation) you will be ready to read Chapter 3 which looks at various ways that CT can be used in the computer science domain.

Chapter 4 is entirely concerned with further reading. It is badly dated and the reader would probably be better served today by an intelligent use of Google or some other search engine.

Whilst I would recommend this book to someone with an appropriate background and an interest in theoretical aspects of computer languages, it is not a book for the working programmer or software developer. This is a book for those that are either very interested in or who need to study the foundations of computer language design.