Update: This is a review on "a new edition of the Hopcroft/Ullman classic" (hsmyers) (the second edition, to be precise, with a new coauthor). Authors are: John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman.
This book is a very good introduction to the
theoretical background of languages and computation.
Topics include:
- introduction to mathematical proofs: one chapter that introduces notation and methods
- finite automata (DFA, NFA), regular expressions and
regular languages: three chapters on all the theory, with
applications to UNIX regexes and a good chapter on algebraic laws for regexes (read: how can we transform a regex)
- pushdown automata and context-free languages: three chapters on all the theory, with applications to YACC and XML
- turing machines and undecidability: two chapters, very good and easy-to-follow style
- intractable problems and additional classes of problems: detailed discussion of problem classification and classes of problems
The style of the book is very application-oriented, with lots of examples and illustrations of the formal results presented.
Mathematical notation is very well introduced and explained.
Informal, intuitive sketches of proofs are followed by more formal proofs.
All in all, this was a very motivating reading for me.
For all those that, like me, lack the theoretical foundation that is laid in the standard computer science courses, this is a good book to read.
The one drawback of this book is the relatively large errata list (seven pages (printed from browser) as of now, be sure to get it from the website before you start reading). IMHO, this number of errors is hard to excuse given the price tag on the book.
OTOH, Mr Ullman is quickly responding to error reports,
and includes new errors in the errata promptly, so this should not hamper your learning.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.