什么是野牛,为什么它有用?

时间:2012-08-24 18:58:32

标签: c++ c bison

我已经编程了几年了,并且已经看到了名字Bison,但从来没有费心去问为什么会这样或者为什么需要它。 Bison如何影响我的编程方式,是否可以让我的C / C ++代码更快?

2 个答案:

答案 0 :(得分:3)

Bison是一个解析器生成器。它以类似于Backus-Naur表示法的方式输入它,并输出代码以根据该语法解析输入。它可以让您比其他方式更轻松地编写解析器。您无需手动执行所有操作,只需指定语法规则以及匹配其中一条规则时要执行的操作。

答案 1 :(得分:2)

GNU Bison是我所知道的与编程相关的唯一野牛。它不会让你的代码更快,而且你的生活中可能永远不需要它。然而,学习一些编译器理论,甚至自己编写一个简单的编译器,是一种极好的学习体验,它会影响你的编程方式,你对计算机编程的思考方式,以及很多这样的事情。如果您喜欢正式语言和自动机,您将享受编译理论;如果你一般不喜欢理论,那可能不适合你。如果您有兴趣,有很多关于在Stackoverflow上开始书籍的问题。

哦,有一段时间,程序员确实需要一些更复杂的解析工作等等,知道解析器生成器,而不是手工编写所有内容,遵循一种天真的方法,这是一个巨大的福音。