Parsing Expression Grammar
上述のように Packrat Parser を使えば線形時間で構文解析可能である。
文脈自由文法とほぼ同程度の利点がある。すなわち、正規表現より強力でありよい代替手法となる、等である。
C言語のような典型的なプログラミング言語の文法では、既存のよく使われている手法、たとえばyaccのLALR(1)文法では、先読みの制限により、広義の構文解析について前段となる字句解析を分離し、いわゆる「トークン」を終端記号にしなければならない。これは局所的には任意の文字数を先読みする必要があるためである。PEGにはこの制限が無いため、字句解析の段階に相当する規則も構文規則として統合的に扱うことができる。
en:Dangling else のような多義性(曖昧な文法の記事を参照)について、文脈自由文法ではそれが「曖昧な文法」であり、yaccなどではそれがコンフリクトとその解決として明示的に多義的でなくなる。一方PEGでは、最初に解析に成功した結果が、そもそも文法が意図していたものだとされる。このどちらが良いかは目的にもより、見方によってはPEGの欠点である。
左再帰の問題(詳細は「左再帰」の記事を参照)は、ナイーブな再帰下降構文解析の場合と全く同様に、PEGでも問題となる。