Media praise for lex & yacc

Have a blog? Join our Reader Review Program

"The book is...well-written and thorough. I had the pleasant surprise numerous times of reading some passage, thinking to myself, `Oh, they've missed this perhaps subtle point, make a note,' and then the next sentence or paragraph would cover exactly that point...I'm glad I'll finally have a good book to recommend to folks." --Vern Paxson, Developer of Flex

"Even after many years of using lex and yacc, this book showed me new things about them, and new uses for facilities I thought I knew. It will have an honoured position on my bookshelf" --Pete Jinks, Sun UK User

"If you have an application for lex and yacc, you should have this book on your shelf. Few other books provide such an appropriate combination of details and illustrative examples for these tools." --G.K. Jenkins, Computing Reviews, July 1993

"We have colleagues who, without turning a hair, spell 'Turing Machine' with an 'ou'. And we have other colleagues who approach the whole collection of problems placed on their desks during their careers like complete troglodytes. Both may, in their life- time, encounter the universally esteemed Unix operating system and along with it tools like lex & yacc. The Nutshell Handbook of the same name by Tony Mason and Doug Brown has both ends of the developer spectrum in view as its purchasers. This is a book for developers by developers, and even insofar as possible, all developers. There is but one prerequisite: you have to speak C and know what a Makefile is.

"lex (lexical analyzer) and yacc (yet another compiler compiler) are work tools that are typically used for development of compilers and interpreters. The handbook does not restrict itself to a limited description of both tools; fortunately it gets right to the point. Beginning with the first example the stress is on making the tool friendly to the reader in an interactive way: to put the bridle on the horse from the top down, to clarify the details one by one.

"Except for Chapters 6 and 7, in which lex and yacc methods and and resources are treated together--almost in reference format-- all the chapters are concerned with basics. Altogether, four chapters undertake to introduce the tools, starting with minimal examples like the inevitable pocket calculator and proceeding to menu and screen generators. All programming examples are carefully developed and not just presented to the reader. That takes space but makes for understanding--even if it leads the more experienced reader to take a shortcut or in certain cases obliges him or her to go into reverse.

"A manual should not just facilitate the reader's imitation of the examples offered; the knowledge gained should be transferable. Upon first trying to use lex and yacc people ususally stumble over two problems: first, over unsavory grammars larded with ambiguities (typical case: which if does this else belong to?), and second, over deep-seated logical errors and strategies for recovering them: How nonsensical must a program be for the compiler not to consider it meaningful to carry through to the bitter end, or else, the reverse? The authors' decision to devote a complete chapter to each of these points seems to me praiseworthy and practical.

"The appendices are equally practical: Appendices A and B summarize options and error messages. For each error message there is a short explanation along with advice on fixing the problem. Appendices C and D describe the free GNU analogs to lex and yacc, namely,
flex and bison. Nor have the authors forgotten to include the address of the Free Software Foundation from which they can be obtained. Besides program listings, a bibliography, and an index, the book fortunately also includes a glossary in which the most important subjects that you come across in the book are compiled.

"In short, the book is an excellent, shapely thing. If there's anything to complain about, it's only this: why not before now? The book appeared in May, 1990. I wish I'd had it much sooner." --Heinz Weber