我想学习如何编写词法分析器。我的大学课程有一个任务,我们必须编写一个解析器(和一个词法分析器一起使用),但这是在没有指导或反馈的情况下(超出标准)提供给我们的,所以我并没有从中学到太多。
在搜索了此主题之后,我只能找到相当高级的文章,这些文章着重于我认为比我所处的位置要走几步的领域。我想讨论一种为非常简单的语言编写词法分析器的基础知识,我可以以此为基础来研究标记更复杂的语言。
在此阶段,我对最佳实践或优化技术并不真正感兴趣,而宁愿关注重点。有什么好的资源可以帮助我入门?
我想学习如何编写词法分析器。我的大学课程有一个任务,我们必须编写一个解析器(和一个词法分析器一起使用),但这是在没有指导或反馈的情况下(超出标准)提供给我们的,所以我并没有从中学到太多。
在搜索了此主题之后,我只能找到相当高级的文章,这些文章着重于我认为比我所处的位置要走几步的领域。我想讨论一种为非常简单的语言编写词法分析器的基础知识,我可以以此为基础来研究标记更复杂的语言。
在此阶段,我对最佳实践或优化技术并不真正感兴趣,而宁愿关注重点。有什么好的资源可以帮助我入门?
Answers:
基本上有两种主要的方法来编写词法分析器:
我也想从LLVM文档中推荐万花筒教程。它贯穿了简单语言的实现,并特别演示了如何编写小型词法分析器。本教程有C ++和Objective Caml版本。
关于该主题的经典教科书是《编译器:原理,技术和工具》,也称为《龙书》。但是,这可能属于“相当高级的书面说明”类别。