我已经编程了几年,现在已经看到了名字Bison
,但从来没有打扰问为什么它或为什么可能需要。 Bison如何影响我的程序设计,它可以使我的C/C++代码更快吗?什么是野牛,它为什么有用?
0
A
回答
3
Bison是一个解析器生成器。它将输入的内容类似于Backus-Naur符号,并根据该语法输出代码来解析输入。它可以让你更容易地编写一个解析器,否则。您不必手动执行所有操作,只需指定语法规则以及在符合规则之一时想要执行的操作。
2
GNU Bison是唯一与编程相关的野牛。它不会让你的代码更快,并且有可能你的生活中永远不会需要它。然而,学习一些编译器理论,或者自己编写一个简单的编译器,都是一个了不起的学习体验,它会影响你编程的方式,你对计算机编程的看法以及诸如此类的许多事情。如果你喜欢正式的语言和自动机,你会喜欢编译器理论;如果你一般不喜欢理论,那可能不适合你。如果你有兴趣,关于在Stackoverflow上开始书籍有很多问题。
呵呵,有时候程序员确实需要一些更复杂的解析工作等等,并且了解解析器生成器是一个巨大的福音,而不是用手写一切,遵循一种天真的方法。
相关问题
- 1. 什么是野牛的$$?
- 2. 的错误会发生什么 - 野牛
- 3. 为什么%prec在这个野牛语法中没有效果?
- 4. 为什么没有显示野牛的结果?
- 5. 为什么野牛(Yacc)打印新行显然没有理由?
- 6. 为什么这Yacc /野牛规则无用?
- 7. 什么是string array [] =“”;是什么意思?为什么它有效?
- 8. 什么是“argv”,它有什么作用?
- 9. 什么是Thread.CurrentPrincipal,它有什么作用?
- 10. 什么是newproxy,它有什么用处?
- 11. 为什么野牛在第一个标记后期待$结束?
- 12. 野牛给我一个段错误,假设它有什么关系* char
- 13. 为什么NSString'忘记'它是什么?
- 14. 什么是clojure.lang.Var.getRawRoot和它为什么叫?
- 15. POINTER_32 - 它是什么,为什么?
- 16. Regexp.last_match - 为什么它有用?
- 17. 核心文件究竟是什么,它为什么有用?
- 18. 什么是联合所有关于?为什么guice使用它?
- 19. “::”的目的是什么?它为什么有用?
- 20. 为什么JavaScript转换它,它是什么将它转换为?
- 21. 科尔多瓦遥测,它是什么,为什么使用它?
- 22. 春天 - 它是什么,为什么我想要使用它?
- 23. STDERR?它是什么?它有什么共同用途?
- 24. Javascript“窗口”:它的目的是什么?它有什么作用?
- 25. 什么是python中的类,它做什么,它为什么需要它?
- 26. enCapsa - 它是什么和用于什么?
- 27. 什么是applescript,它用于什么?
- 28. 究竟是什么ObjectFactory是什么,它用于什么?
- 29. 什么是com.google.android.gms.persistent,它为什么总是使用CPU?
- 30. 这张表是什么,为什么它有
http://en.wikipedia.org/wiki/GNU_bison –
Bison从正式文法中生成解析器。它与加快代码速度没有任何关系。 –