是否需要知道BNF语法才能学习flex和Bison?

时间:2012-09-04 13:14:26

标签: bison flex-lexer

是否需要学习BNF语法或文本处理算法才能学习 Flex和Bison或类似的解析器/扫描仪?

我打算学习flex和Bison,但我没有编写任何编译器 等级知识所以请告诉我是否有可能学习flex和Bison 不知道BNF语法,没有编译器写作水平知识。

2 个答案:

答案 0 :(得分:2)

让我们说您将学习BNF语法和文本处理算法,作为学习Flex和Bison的副产品。如果你碰巧在学术上学过BNF,那么你以前的学习会对你有所帮助,但这样的事先研究可能对你的目的没有必要。

顺便提一下,如果你的语言碰巧是C ++,那么填充Bison旧角色的通常的现代工具是Boost Spirit.

答案 1 :(得分:0)

如果您在开始使用这些工具之前不知道它,那么您将在之后知道它。语法与这些工具齐头并进,这样你就有机会学习这两种工具。

如果你想要一本关于这个主题的教科书,我推荐this。然而,它涵盖了许多其他科目,并且总体上是实施语言的良好参考。

我选择的工具而不是Flex / Bison是ANTLR。它是一种非常流行,现代且易于使用的工具。它有很好的文档以及一些可供参考的书籍。以下是编辑器的屏幕截图: ANTLR