Describes an algebraic approach to programming that permits the calculation of programs. Introduces the fundamentals of algebra for programming. Presents paradigms and strategies of program construction that form the core of Algorithm Design. Discusses functions and categories; applications; relations and allegories; datatypes; recursive programs, optimization issues, thinning algorithms, dynamic programming and greedy algorithms. Appropriate for all programmers.
Prof. Richard Simpson Bird is a computer scientist.
There are other authors named Richard Bird: * Richard Bird — a horticultural expert and gardening author * Richard Bird — a contemporary author * Richard Bird — an early 20th-century author
This is a mind-blowing book. Mind you: if you come from a OO background, finishing the first chapter is enough for a brag-right. Notwithstanding, while reading this book, you'll have the constant feeling that programming will never be the same for you.
So esoteric, but this is only because we are not used to deal with abstract mathematics; it is a genial book, condensing thousand of disseminated papers. Great!
On the one hand, it's algebraic, and algebra is cool! I have read quite some textbooks and papers involving category theory, but this is the only source I've met introducing the notion of allegories. This alone makes it worth reading for me.
On the other hand, it's supposedly about programming as well, and here it fails to deliver IMO. After so much time spent on category theory (first five chapters!), applying it to actual problems (as much as algorithms-books-exercises are "actual problems") requires about the same amount of ad-hocery and ingenuity as your average college algorithms course. Perhaps it's a question of expectations, but I expected much more automated algorithm synthesis from the allegory-expressed spec.
Ended up thoroughly working out the theory and exercises from the first five chapters (the category-theoretic stuff), and skimming over the rest (the ad-hocery boring CS course stuff).
Do read if you're into algebra and category theory for their own sake. Do not read if you're into Cormen's "Introduction to algorithms".
Oh, and some exercises have typos, and a couple of them are effectively undoable with the amount of category theory introduced. Asking to derive the power objects for A^B when A has them? Sure, easy!
I really don't know what to make of this. I heard a lot of things about this book but my understanding is this particular line of research was abandoned at some point by Bird and Moor and hasn't really been revived. There are some interesting tidbits but it does seem the results presented (program derivation via algebras) here don't seem to be particularly practical (work only on small examples and need to be done manually).
This was just too hardcore for me the first time around... at some point in the middle I realize I'm reading a bunch of symbols and I have no idea what anything means so I had to stop. Will try again at some point...
Read it again; picked up a little more, but still just too dense and crazy for me.