Rating:  Summary: The best out there Review: A really good book...this is basically the only good tutorial/reference on purely yacc/lex topics. If I have one complaint it is that it should be a little longer, but otherwise it's great; it covers all the lex/yacc versions including flex and bison, has good examples as well as thorough explanations of key concepts. If you need to parse a complex file format or compile a language, this is basically required reading.
Rating:  Summary: ÁÁÀº Ã¥ÀÓ¿¡ Ʋ¸² ¾øÀ¸³ª ±íÀ̰¡ ¾øÁÒ. Review: ÀÌ Ã¥À» »êÁö ¸îÀÏ Áö³µ½À'Ï'Ù. ¿ì¼± ÀÌ Ã¥Àº ¾öû³ª°Ô ½¬¿î ¿µ¾î·Î ¾²¿©Áø °ÍÀÌ ¿ì¼± ¸¾¿¡ µé¾ú±¸¿ä. °íµîÇб³ ¼öÁØ ¿µ¾î¸é ÈǸ¢ÇÏ°Ô º¼ ¼ö ÀÖ½À'Ï'Ù. ·º½º¿Í ¾ßÅ©ÀÇ »ç¿ë¹ý ¹× ¹®¹ý ¼³¸í ¶ÇÇÑ Àß ¼³¸í µÇ¾î ÀÖ½À'Ï'Ù. 'Ù¸é Á» ±íÀ̰¡ ºÎÁ· ÇÏÁÒ. À̸¦ Å×¸é ½ÇÀü¿¡¼ »ç¿ëÇÏ' ¿¹¸¦ µç'ٵ簡. ¹°·Ð SQL¿¡ 'ëÇØ¼ ¼³¸íÇϰí ÀÖÁö¸¸ Á» ºÎÁ·ÇÏÁÒ. 'ëºÎºÐÀÇ »ç¿ëÀÚ' ÄÄÆÄÀÏ·¯¸¦ °øºÎÇϱâ À§Çؼ »ç¿ëÇÏ'Â ÅøÀε¥ ÄÄÆÄÀÏ·¯¿¡¼ »ç¿ëÇÏ' ¿¹°¡ Á» ºÎÁ·.. ±×·³ À̸¸
Rating:  Summary: Excellent - best book I've ever read on lex/yacc Review: As a graduated software engineer I have used lex&yacc for many non-trivial tasks, and so I've also read a lot of both docs and usenet material, but no one was so informative and useful as this. I was not surprised since John Levine has been the FAQ mantainer and moderator of comp.compilers for a lot of years,so I knew its knowledge of this two tools come from a lenghty experience. I've expecially appreciated its explanation of the inner workings of the yacc parser (so now I deeply and clearly know what shift/reduce and reduce/reduce conflicts are), the explanation of the syntax of y.outpur error file, the reviews of the various versions of yacc&lex available, its showing of the most common problems (here the authors' experience counts!). Of course I enjoyed the clear style of writing. I'm no more a beginner, so I can't be a good judge of its quality as tutorial; anyway I'm sure this is the best book for a newcomer also. No examples like the infamous 'DING DONG DANG' parser of some unix documentation, but real-life ones, fully and clearly explained - with the first of them developed from a simple version to a sophisticated one in order to gradually teach you the subject. If only I had read it before ...
Rating:  Summary: A real page-turner. I couldn't put it down! Review: As someone who has written a number of programming language translators and who has read a number of books on compiler generation, I found that this book is very readable and gives the best introduction to compiler compilers I've ever seen.
Rating:  Summary: Incomplete, poorly organized, and not very well written Review: As with several other O'Reilly books, I found Lex & Yacc to be maddeningly uneven. The approach is to give a too-brief synopsis of the tool, then illustrate its use using a very specific example that, one suspects, is merely the handiest project the authors had available.I had a fair bit of programming experience when I bought the book, but none with Lex or Yacc. Some fundamental questions came up during the course of my muddling through, and these were left unanswered. I actually got more insight into these tools from a ~20-page web site on the topic. The reference chapters are organized alphabetically ("ambiguities & conflicts", "bugs", ..., "%ident declaration"), and in a way that does not help someone who is looking for a specific answer (in trying to find out about the possibility of more than one parser in a program, who would think to look under 'v' for "variant and multiple grammars"?). These 'reference chapters' seemed more like a place to dump the information not discussed elsewhere. Maybe it's a lost cause, finding a comprehensive, well-written introduction to such an arcane topic, but I'm still looking.
Rating:  Summary: Incomplete, poorly organized, and not very well written Review: As with several other O'Reilly books, I found Lex & Yacc to be maddeningly uneven. The approach is to give a too-brief synopsis of the tool, then illustrate its use using a very specific example that, one suspects, is merely the handiest project the authors had available. I had a fair bit of programming experience when I bought the book, but none with Lex or Yacc. Some fundamental questions came up during the course of my muddling through, and these were left unanswered. I actually got more insight into these tools from a ~20-page web site on the topic. The reference chapters are organized alphabetically ("ambiguities & conflicts", "bugs", ..., "%ident declaration"), and in a way that does not help someone who is looking for a specific answer (in trying to find out about the possibility of more than one parser in a program, who would think to look under 'v' for "variant and multiple grammars"?). These 'reference chapters' seemed more like a place to dump the information not discussed elsewhere. Maybe it's a lost cause, finding a comprehensive, well-written introduction to such an arcane topic, but I'm still looking.
Rating:  Summary: This acts as a Helping hand for compiler developrs Review: Firstly there are not many books on Lex & Yacc. Unix programming by Kernighan & Pike provides some necessary information but it is not sufficient to write a complex parser or scanner. In these circumstances this book acts like a God given gift for compiler developers. The examples which introduce the tools are very good. But the theory behind these examples is not well explained. Probably NFA/DFA concepts add more strenght to the book. Adding more and more concepts and examples will make this as a unique book in the Market. Many guys who desire jobs as compiler developers follow this book. So some contemporary examples that I expect from future editions of this book are A) Parsing a Gate level design B) A small simulator which simulates an analog/digital design C) An assembler etc D) Relational algebra tutor etc. Hope the authors can consider this request.
Rating:  Summary: This acts as a Helping hand for compiler developrs Review: Firstly there are not many books on Lex & Yacc. Unix programming by Kernighan & Pike provides some necessary information but it is not sufficient to write a complex parser or scanner. In these circumstances this book acts like a God given gift for compiler developers. The examples which introduce the tools are very good. But the theory behind these examples is not well explained. Probably NFA/DFA concepts add more strenght to the book. Adding more and more concepts and examples will make this as a unique book in the Market. Many guys who desire jobs as compiler developers follow this book. So some contemporary examples that I expect from future editions of this book are A) Parsing a Gate level design B) A small simulator which simulates an analog/digital design C) An assembler etc D) Relational algebra tutor etc. Hope the authors can consider this request.
Rating:  Summary: Good for what it is Review: I have not found Yacc information on the web as complete as the info in this book. The code samples I have found on the web all required surgery or additional pieces to get working. WHAT IT IS: A sparse crash course, a jump start in Lex and Yacc for those who already know (1) front-end compiler technology, and (2) the C programming language. If you meet both these daunting prerequisites and can use a bit of sample code to get going, this is for you, but be advised that the Yacc example is only an interactive calculator, not a mini-language. Includes a reference section on Lex and Yacc, sections on Yacc ambiguities and error reporting, and a small glossary which is nice except that the definition of LALR(1) is slightly off (the LR in look-ahead LR means, "Left-to-right scanning of input, Rightmost derivation in reverse)." I found the Lex and Yacc command line options in the examples to be valuable information. The only problem I had with the code samples was that the goofy version of Lex on my Slowlaris system gives an error if the first line of the translation rules section is a {substitution} --once I replaced that with the corresponding regular expression, it worked fine, and so did the rest of the code that I ran in chapters 2 and 3. You might have to do similar tweaking. WHAT IT AIN'T: An primer on compilers or even parsing (but neither are some of the books purporting to be such, for that matter). It does not have an example of a mini programming language. (And of course, it does not promise nor cover compiler back-end technology like code generation.) WHAT IT COULD: I would like more working parser examples; ideally, a mini programming language compiler that reads source code from one file and puts some sort of output (like generated code quadruples) in another; plus an example of a parser for some kind of output stream. Chapter 4 on a menu generation language (like "curses") and chapter 5 on parsing SQL are not needed today as far as I know, but I admit that's not very far. =^] WHAT IT CAIN'T: I grimaced with sympathetic frustration as I read a scathing review by some poor guy screaming bloody murder that this book explains *nothing*. I know where he was at, and his frustration is understandable. This book is no substitute for a course on automata theory that covers regular expressions and context-free grammars, plus a *good* compiler course (those are hard to come by) that covers, say, chapters 3 and 4 of the "dragon book." The dragon on the cover of that book symbolizes the complexity of compiler design, correctly indicating that this is a recondite subject. If you are on your own and do not know the meaning of terms like "regular expression," "DFA," "CFG," "state diagram," and "LR," you do not realize the odyssey you are embarking on, and this little book on Lex and Yacc won't save you. Many students of Computer Science (including yours truly) regard compilers as the hardest subject. NOTE: Are there guys out there without all that Comp Sci background who can write parsers? You bet! It can be done, and there are many other books on parser construction out there now.
Rating:  Summary: Excellent reference for beginning or advanced users Review: I knew nothing about either lex or yacc when I picked up this book. However, John Levine clearly explains the basics, devoting separate tutorial chapters to both lex and yacc as well as two chapters for complete real-world examples (I was impressed with the chapter about parsing SQL). Despite the repeated nature of parts of the reference sections, I highly recommend the book to anybody else who needs to learn how lex and yacc work. Especially useful for identifying common problems. Includes documentation for nearly all of the functions lex and yacc define.
|