bison和lex语法编译缓慢



我使用bison和flex使用grammar.y文件生成C解析器。它能在大约10秒内正确且快速地编译。为了获得C++输出,我更改了bison和flex参数,尽管它生成了正确的结果,但编译和输出CPP语法结果大约需要1分钟。有人有解决这个问题的办法吗?语法文件大约有6000行。

根据C++代码的复杂性,C++编译运行缓慢是很常见的。C++编译器有很多工作要做,要弄清楚。比C编译器要做的工作多得多。我有一些C++代码需要几分钟的时间,而且几乎需要一块RAM。

野牛从一个6000行的规则集中喷出了一个机器人生成的LALR(1)解析器,这并不完全是一个意外的结果。如果解析器的运行时性能不关键,那么您可能可以通过删除机器人生成的语法文件的-O优化选项来加快速度。这可能会加快速度。

您也可以尝试更新编译器。在最近的版本中,gcc的性能有了显著的改进,所以如果您使用的是旧的gcc,您可能会看到改进。

欢迎使用C++。

最新更新