19 of 19 people found the following review helpful
on 24 January 2003
This is a good book - but as a revision of a much-revered classic of
the field, it's a bit of a disappointment.
Hopcroft & Ullman wrote the classic text way back in 1969, and then
revised it in 1979. It was pretty much the standard text the world
over for an introduction to the theory of computation.
But over the last two decades, more and more people have been studying
Computer science, and many of them have no time for theory and
formalism and all the 'dry stuff' ..........
The authors point out that because of such reasons and also because
nowadays there's little research in the theory of computation per se,
and more in its applications, they've written a book to cater to today's
Which, in other words, means they've simplified the presentation, tried
to provide intuition whenever possible, given lots more examples and
done away with some of the more difficult material.
This approach puts the book into direct competition with Michael Sipser's
excellent 'Introduction to the theory of computation', a contest it
cannot win, though it might be a respectable second.
Almost all topics are motivated by giving examples of how they're
related to applications in the 'real world', and similar to
Sipser's 'proof idea' approach, the authors first present a topic
informally and then formally, thus gently leading the reader to
the formal proofs.
This book sets out to do pretty much the same as what Sipser's book
does, ie to provide a readable, user-friendly introduction to the
theory of computation with lots of examples and intuitive approach
to problems wherever possible, but Sipser's already done an
Moreover, this book tries to be 'chatty', which i'm afraid is just
not the authors' style - the 'economy of expression', which has long
which has long been the hallmark of the legendary textbooks by
Aho,Hopcroft and Ullman, is sadly missing here.
Which means that this may not be the book for you if you're pressed
for time - but on the other hand, if you want to led gently to the
proofs and results with lots of examples and motivation, then this
might be just the book for you.
So all in all, it definitely worth a read - in fact, i'd say
it's still among the top textbooks around.
In fact, i would suggest that you read both this and Sipser, if you
have the time. Otherwise Sipser's the better choice for most of the
part, though it may not cover all the topics you need.
And if you're comfortable with a terse, concise & rigorous
presentation, then the earlier edition of this book is still
unbeatable - and you'll surely need it if you want to pursue research
in this area.
1 of 2 people found the following review helpful
on 27 February 2003
I've just passed my exam on Theory of Computation, and I've used both editions of this text. Frankly speaking, I couldn't choose one of the two should I keep only one of them.
Whereas the first was full of strict formalism, the second has traded this for a more discursive approach. Whereas the first reported theorems name (of their authors), the second has traded this for a richer bibliography at the end of the chapters. And more objectively, the first edition covered more "classical" topics with shorter treatments than the second, but this last treats survived topics with richer details (starting from the first chapter on mathematical basis for the course) and with updated examples of applications (XML and Markup Languages, e-commerce for DFA, etc).
This said, you know why I can't decide. A discursive approach is of course always desiderable, especially if you're completely new to a subject, but a strong notation is helpful in my mind because it improves communication and removes ambiguities. Hence, the best approach would probably have been a mix of the two, or halfway the two.
As a second matter, having a rich bibliography is surely helpful both for further studies and as a reference, but it's quite tedious to look at the index and be unable to find something like "Kleene theorem": you've to dive into bibligraphy to discover that "L is an L(DFA) if and only if it also is L(REG)" is something that has been studied by Kleene.
Finally, I surely can't question the reduction of the complexity theory part since it is in the right of the authors to remove "optional topics" (if you use the book for a course on Theory of Computation only) and give a more focused target to the book, but removing stuff like the Myhill-Nerode theorem make things annoying since virtually every course on Automata theory and Computation includes it (like my one did, as well as the course on Languages and Compilers), so you have to look for it elsewhere if your only one book is this second edition.
I would give four stars, should I keep in heavy account the radical changes they made over the first edition and that includes the removal of some stuff, important on my opinion. But ... as this is just my opinion, and since it is a very well written and informative book (rich of many details that other texts lack of) and surely one of the bests in the area (I've had 4-5 books in my hands for this course), that's why I gave it 5 stars.
0 of 2 people found the following review helpful
on 22 June 2002
This books covers the basics well but in an overly formal way. Obvious facts get rigorous proof, straightforward concepts get defined by complex algebraic formula (with all sorts of obscure symbols).
This has the disadvantage of making the book hard to read, let alone understand. I've covered most of this material before but found myself having to reread sections to follow what was going on. It also means the book covers much less ground than could have been the case.