有没有文件描述为什么flex比lex更快?

时间:2013-07-01 05:49:55

标签: flex-lexer lex lexical

flex被称为“快速”词法分析器,但我找不到任何解释为什么它比lex更快的文档。 flex有一本手册,但它专注于它的使用,而不是它的内部。请问这个领域的专家能给予一些帮助吗?关于flex的性能改进的解释或链接是值得欢迎的。

3 个答案:

答案 0 :(得分:1)

这个答案来自Vern Paxson,他允许在这里分享。

  唉,这需要相当多的时间来绘制草图   有用的细节,因为有许多技术有助于   它的表现。我写了一篇关于它的文章很久以前(中期)   80年代!)但没有它的副本。显然你可以从以下地方购买:

    http://www.ntis.gov/search/product.aspx?ABBR=DE85000703
     

很抱歉没有更多的帮助...

答案 1 :(得分:1)

为了添加Vern的语句, flex 在表压缩方面做得更好,提供了几种不同的空间/时间权衡,其内循环也比 lex的

根据van Jacobsen在20世纪80年代发表的一篇(Usenet?)论文, lex 主要由AT& T实习生撰写。 VJ描述了它的内循环如何从几十个指令减少到大约三个。

Vern Paxon写了 flex ,因为他当时描述的是世界上最快的数据采集应用程序。不知道我是否应该在这里详细介绍。

我有幸使用8位版本帮助Vern,因为我当时正在编写那些必须扫描Kanji和Katakana的编译器。

答案 2 :(得分:-1)

我不太确定flex比AT& T版本lex快得多。这两个程序都是独立开发的,为避免与官方版本混淆,flex的作者可能会选择略有不同的名称。他们可能打算生成更快的扫描仪,这也是一些时间交换空间选项的建议。此外,他们还鼓励%option yylineno(以及其他一些功能)以生成的扫描仪的速度进行选择。

这种扫描仪的速度的微小差异是否仍然相关是值得商榷的。我也找不到任何关于名称选择的官方声明,所以我想你必须问原作者Jef Poskanzer和/或Vern Paxson。如果您找到并得到答案,请在此告诉我们。软件的历史很有趣,你仍然可以直接得到答案。