我想学习如何编写词法分析器。我的大学课程有一项作业,我们必须编写一个解析器(以及与之配套的词法分析器),但这是给我们的,没有任何指导或反馈(超出了标准),所以我并没有真正从中学到很多东西。
搜索这个主题后,我只能找到相当高级的文章,这些文章重点关注我认为比我所处的领域领先几步的领域。我想讨论为一种非常简单的语言编写词法分析器的基础知识,我可以将其用作研究更复杂语言的标记化的基础。
在这个阶段,我对最佳实践或优化技术并不真正感兴趣,而是更喜欢关注要点。有哪些好的资源可以帮助我入门?
基本上有两种主要的方法来编写词法分析器:
- 创建一个手写的,在这种情况下我推荐这个小教程 http://stlab.cc/legacy/how-to-write-a-simple-lexical-analyzer-or-parser.html.
- 使用一些词法分析器生成工具,例如lex http://en.wikipedia.org/wiki/Lex_%28software%29。在这种情况下,我建议阅读所选特定工具的教程。
另外我还想推荐一下万花筒教程 https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html来自LLVM http://llvm.org/文档。它贯穿了一种简单语言的实现,特别演示了如何编写一个小型词法分析器。本教程有 C++ 和 Objective Caml 版本。
关于该主题的经典教科书是编译器:原理、技术和工具 http://en.wikipedia.org/wiki/Compilers:_Principles,_Techniques,_and_Tools又称龙书。然而,这可能属于“相当高级的文章”类别。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)