REVIEW - Basic Category Theory for Computer Scientists

Title:

Basic Category Theory for Computer Scientists

Author:

Benjamin C. Pierce

ISBN:

0262660717

Publisher:

MIT Press (1991)

Pages:

100pp

Reviewer:

Francis Glassborow

Reviewed:

August 2004

Rating:

★★☆☆☆

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.


Book cover image courtesy of Open Library.