当前位置:  开发笔记 > 编程语言 > 正文

Flex/Lex和Yacc/Bison有什么区别?

如何解决《Flex/Lex和Yacc/Bison有什么区别?》经验,为你挑选了4个好方法。

Flex&Lex和Yacc&Bison有什么区别.我疯狂地搜索了互联网,但没有找到任何可靠的答案.

我可以在Ubuntu上安装纯Lex和Yacc,或者我只能安装flex和bison.我很迷惑.

Lex或Yacc仍然由某人维护吗?

他们都是免费的吗?

如果Lex不是免费的,为什么我要在我的Ubuntu发行版上安装它?

lex --version
lex 2.5.35

Jonathan Lef.. 77

Lex和Flex之间存在一些差异,但你必须滥用Lex来解决Flex的问题.(因此,我有一个滥用Lex并且不能在Flex下工作的程序.)这主要是在输入前瞻的领域; 在Lex中,您可以提供自己的输入代码并修改字符流; Flex不会让你这样做.

Yacc和Bison非常接近,但Bison有一些额外的技巧.

您可能找不到要在Ubuntu上安装的Lex和Yacc的原始(AT&T版本)的合法副本.我不一定说这是不可能的,但我不知道这样的.Flex和Bison随时可用,并且在大多数情况下都是等效的.您还可以找到BSD世界中的各种替代和近似等效的程序.

Lex和Yacc由Unix SVRx许可证维护 - 诸如IBM(AIX),HP(HP-UX)和Sun(Solaris)等公司已根据其命令修改了Lex和Yacc的版本.MKS还提供MKS Lex和MKS Yacc; 但是,Yacc至少有一些非标准扩展.

Flex和Bison是免费的.(AT&T)Lex和Yacc不是.



1> Jonathan Lef..:

Lex和Flex之间存在一些差异,但你必须滥用Lex来解决Flex的问题.(因此,我有一个滥用Lex并且不能在Flex下工作的程序.)这主要是在输入前瞻的领域; 在Lex中,您可以提供自己的输入代码并修改字符流; Flex不会让你这样做.

Yacc和Bison非常接近,但Bison有一些额外的技巧.

您可能找不到要在Ubuntu上安装的Lex和Yacc的原始(AT&T版本)的合法副本.我不一定说这是不可能的,但我不知道这样的.Flex和Bison随时可用,并且在大多数情况下都是等效的.您还可以找到BSD世界中的各种替代和近似等效的程序.

Lex和Yacc由Unix SVRx许可证维护 - 诸如IBM(AIX),HP(HP-UX)和Sun(Solaris)等公司已根据其命令修改了Lex和Yacc的版本.MKS还提供MKS Lex和MKS Yacc; 但是,Yacc至少有一些非标准扩展.

Flex和Bison是免费的.(AT&T)Lex和Yacc不是.


有关Yacc的信息不正确.Berkeley有一个Yacc,它在所有开源BSD操作系统上都有BSD许可证.我对此帐户进行了投票,但如果答案得到了足够快的纠正,我将删除downvote.
@Daniel:AFAIK,AT&T Yacc无法从伯克利获得-从伯克利获得的是伯克利Yacc。我将澄清答案以反映这一点。

2> Jan Jungnick..:

Bison是Yacc的GNU实现/扩展,Flex是Lex的继承者.在任何一种情况下,使用bison/flex都很好(并且推荐).



3> 小智..:

在大多数(全部?)Linux系统中,"Lex"实际上是flex的符号链接.基本上,它只是一个与免费版本不同的名称.



4> Daniel C. So..:

YACC可在Plan 9和Open Solaris的开源许可下使用.此外,还有Berkeley YACC,它与原始YACC兼容,但不共享源代码.Berkeley YACC可以在任何开源BSD操作系统上找到.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有