1

文法要件に正規表現を使用しています。ただし、サポートが必要なパターンは約 20 以上あり、パターンが再帰的になり始めると、RegEx を維持することが非常に難しくなります。ANTLR への移行を試み、次の 2 つの重要な点を確認しました。

パフォーマンス いくつかの式が移行されたとき、パフォーマンスが懸念されるようです。コンパイルされたアセンブリを使用した RegEx は、一部の式で約 2 倍または 3 倍高速です。

管理性 ANTLR 文法は、管理と開発がはるかに簡単なようです。新しい式/構造への対応は、RegEx よりもはるかに簡単でした。

そのような移行について同様の経験をした人はいますか。それを見るべきですか、それとも RegEx を使用するべきですか?

4

1 に答える 1

0

ANTLRのパフォーマンスは、使用する文法スタイル、特に述語の配置と内容に大きく依存します。その後、ANTLRによって生成された再帰下降文法は、式で使用可能な演算子の数に基づいて徐々に低下する傾向があります¹が、使用可能な解決策があります。ANTLRに慣れたら、正規表現よりも「重要なサイズのタスク」で保守しやすいことが確実にわかるはずです。ただし、立ち上げて実行することは、現時点で最も単純なタスクではありません。どの言語/IDEを使用していますか?

¹ここでパフォーマンスについて厳密に話します。生成されたコードを理解することになると、再帰下降パーサーが光ります。

于 2009-08-25T04:56:25.110 に答える