到目前为止,关于这个主题我最喜欢的综述类书籍是 Grune 和 Jacobs 写的《编译技术:实用指南》(Parsing Techniques: A Practical Guide)。这是我在亚马逊上对这本书的评价:https://www.amazon.com/gp/customer-reviews/R17E19PSPM2UO9
By far my favorite survey book on the subject is "Parsing Techniques: A Practical Guide" by Grune and Jacobs. Here is my Amazon review of the book: https://www.amazon.com/gp/customer-reviews/R17E19PSPM2UO9
……《编程语言要义》(第 1 版);James F. Gimpel 的《Snobol4 算法》;Paul Graham 的《On Lisp》;Philip Greenspun 的《Philip 与 Alex 的 Web 发布指南》;Grune 和 Jacobs 的《编译技术:实用指南》;Daniel Hillis 的《思维机器》;Kernighan 和 Pike 的《程序设计实践》;Kernighan 和 Pike 的《Unix 编程环境》;Kernighan 和 Plauger 的《Pascal 软件工具》……
…Essentials of Programming Languages [1st edition] James F. Gimpel, Algorithms in Snobol4 Paul Graham, On Lisp Philip Greenspun, Philip and Alex's Guide to Web Publishing Grune and Jacobs, Parsing Techniques: A Practical Guide Daniel Hillis, The Connection Machine Kernighan and Pike, The Practice of Programming Kernighan and Pike, The Unix Programming Environment Kernighan and Plauger, Software Tools in Pascal…
……能在哪儿找到对你这里提到的算法的解释(可能枯燥、冗长且复杂)?> 换句话说——你是怎么搞懂它们的?我推荐的书是:Dick Grune, Ceriel J.H. Jacobs 的《编译技术:实用指南》(第二版)。很多人也会推荐那本“龙书”(Alfred V. Aho, Monica S. Lam, Ravi Sethi 和 Jeffrey D. Ullman 的《编译原理:原则、技术与工具》(第二版)),它……
…find an explanation (potentially dry, long, and complicated) of the algos you mention here? > In other words - how did you get to know them? My book recommendation: Dick Grune, Ceriel J.H. Jacobs - Parsing Techniques: A Practical Guide (Second Edition). Many people will also recommend the "dragon book" (Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman - Compilers: Principles, Techniques, and Tools (Second edition)), which…
……讲得更详尽,要学编译器的话我毫不犹豫地推荐这两本中的任意一本。(Appel 的《Compiling with Continuations》也很棒,但没涵盖语法解析。)除此之外,Dick Grune 的《编译技术:实用指南》(http://www.few.vu.nl/~dick/PTAPG.html)是一本很好的参考书……而且很详尽。如果你读它是为了学习基础知识,可能会觉得有点枯燥,但我认为它在覆盖深度上拿捏得恰到好处……
…greater detail, and I'd also recommend either for learning compilers in a heartbeat. (Appel's _Compiling with Continuations_ is also excellent, but doesn't cover parsing.) Following that, Dick Grune's _Parsing Techniques: A Practical Guide_ (http://www.few.vu.nl/~dick/PTAPG.html) is a good reference...and thorough. If you're reading it to learn the basics, it might seem a bit dry, but I think it's at a sweet spot between depth of coverage…
…(http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-...). Also, CiteSeer (http://citeseerx.ist.psu.edu/) is a gold mine. I haven't gotten _Hackers Delight_ yet, but it's on my list. * Recommended: Dick Grune's _Parsing Techniques, a Practical Guide_. Lots of deep content, but would still be worth it for the bibliography alone.
I mean, I think you should read a book on parsing theory, just not that one. I like "Parsing Techniques: A Practical Guide" but there might be a newer better one. But clang and gcc both have handwritten recursive-descent parsers for C/C++. (C++ parsing of course is undecidable, or at least used to be.)
到目前为止,关于这个主题我最喜欢的综述类书籍是 Grune 和 Jacobs 写的《编译技术:实用指南》(Parsing Techniques: A Practical Guide)。这是我在亚马逊上对这本书的评价:https://www.amazon.com/gp/customer-reviews/R17E19PSPM2UO9
By far my favorite survey book on the subject is "Parsing Techniques: A Practical Guide" by Grune and Jacobs. Here is my Amazon review of the book: https://www.amazon.com/gp/customer-reviews/R17E19PSPM2UO9
……《编程语言要义》(第 1 版);James F. Gimpel 的《Snobol4 算法》;Paul Graham 的《On Lisp》;Philip Greenspun 的《Philip 与 Alex 的 Web 发布指南》;Grune 和 Jacobs 的《编译技术:实用指南》;Daniel Hillis 的《思维机器》;Kernighan 和 Pike 的《程序设计实践》;Kernighan 和 Pike 的《Unix 编程环境》;Kernighan 和 Plauger 的《Pascal 软件工具》……
…Essentials of Programming Languages [1st edition] James F. Gimpel, Algorithms in Snobol4 Paul Graham, On Lisp Philip Greenspun, Philip and Alex's Guide to Web Publishing Grune and Jacobs, Parsing Techniques: A Practical Guide Daniel Hillis, The Connection Machine Kernighan and Pike, The Practice of Programming Kernighan and Pike, The Unix Programming Environment Kernighan and Plauger, Software Tools in Pascal…
……能在哪儿找到对你这里提到的算法的解释(可能枯燥、冗长且复杂)?> 换句话说——你是怎么搞懂它们的?我推荐的书是:Dick Grune, Ceriel J.H. Jacobs 的《编译技术:实用指南》(第二版)。很多人也会推荐那本“龙书”(Alfred V. Aho, Monica S. Lam, Ravi Sethi 和 Jeffrey D. Ullman 的《编译原理:原则、技术与工具》(第二版)),它……
…find an explanation (potentially dry, long, and complicated) of the algos you mention here? > In other words - how did you get to know them? My book recommendation: Dick Grune, Ceriel J.H. Jacobs - Parsing Techniques: A Practical Guide (Second Edition). Many people will also recommend the "dragon book" (Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman - Compilers: Principles, Techniques, and Tools (Second edition)), which…
……讲得更详尽,要学编译器的话我毫不犹豫地推荐这两本中的任意一本。(Appel 的《Compiling with Continuations》也很棒,但没涵盖语法解析。)除此之外,Dick Grune 的《编译技术:实用指南》(http://www.few.vu.nl/~dick/PTAPG.html)是一本很好的参考书……而且很详尽。如果你读它是为了学习基础知识,可能会觉得有点枯燥,但我认为它在覆盖深度上拿捏得恰到好处……
…greater detail, and I'd also recommend either for learning compilers in a heartbeat. (Appel's _Compiling with Continuations_ is also excellent, but doesn't cover parsing.) Following that, Dick Grune's _Parsing Techniques: A Practical Guide_ (http://www.few.vu.nl/~dick/PTAPG.html) is a good reference...and thorough. If you're reading it to learn the basics, it might seem a bit dry, but I think it's at a sweet spot between depth of coverage…
……(http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-...)。另外,CiteSeer (http://citeseerx.ist.psu.edu/) 也是个宝藏。我还没买《Hackers Delight》,不过已经在我的书单里了。* 推荐:Dick Grune 的《编译技术:实用指南》。内容硬核且有深度,光是附录的参考文献就值回票价了。
…(http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AIM-...). Also, CiteSeer (http://citeseerx.ist.psu.edu/) is a gold mine. I haven't gotten _Hackers Delight_ yet, but it's on my list. * Recommended: Dick Grune's _Parsing Techniques, a Practical Guide_. Lots of deep content, but would still be worth it for the bibliography alone.
我的意思是,我觉得你应该去读一本讲解析理论的书,只是别读那一本。我很喜欢《编译技术:实用指南》,不过可能现在有更新更好的了。但是 clang 和 gcc 对 C/C++ 用的都是手写的递归下降解析器。(当然,C++ 的解析是不可判定的,或者说至少以前是。)
I mean, I think you should read a book on parsing theory, just not that one. I like "Parsing Techniques: A Practical Guide" but there might be a newer better one. But clang and gcc both have handwritten recursive-descent parsers for C/C++. (C++ parsing of course is undecidable, or at least used to be.)