我想学习如何编写词法分析器。我的大学类(class)有一个作业,我们必须编写一个解析器(和一个词法分析器来配合它),但这是给我们的,没有任何说明或反馈(超出标准),所以我并没有真正从中学到多少。

在搜索这个主题之后,我只能找到相当高级的文章,这些文章侧重于我认为比我所处的位置领先几步的领域。我想要讨论为一种非常简单的语言编写词法分析器的基础知识,我可以将其用作研究标记化更复杂语言的基础。

在这个阶段,我对最佳实践或优化技术并不真正感兴趣,而是更喜欢关注要点。有哪些好的资源可以帮助我入门?

最佳答案

基本上有两种主要的方法来编写词法分析器:

  • 创建一个手写的,在这种情况下我推荐 this small tutorial
  • 使用一些词法分析器生成器工具,例如 lex 。在这种情况下,我建议阅读特定工具的教程。

  • 另外,我想推荐 Kaleidoscope tutorial 文档中的 LLVM。它贯穿了一个简单语言的实现,特别是演示了如何编写一个小的词法分析器。本教程有 C++ 和 Objective Caml 版本。

    该主题的经典教科书是 Compilers: Principles, Techniques, and Tools,也称为龙书。然而,这可能属于“相当先进的写作”类别。

    关于language-agnostic - 我在哪里可以学习编写词法分析器的基础知识?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6216449/

    10-14 05:17