1. 再帰降下
a. 最もわかりやすい
b. 実は形式言語のどのクラスに属するかは明らかではない
c. 曖昧な文法(複数通りの解析ができる文法)を事前に検知できない
d. 素直な実装では左結合の演算子をパースすると無限ループになる
e. 筆者は、再帰下降解析はアセンブリ言語のような、自分の足を自分で打ち抜ける手法だと考えている
2. Generalised parser
a. 文脈自由文法に対応している
b. 曖昧な文法を「ランタイムで」検出できる
c. 筆者は、この手法は動的型付け言語のように強力だが静的解析の難しい手法だと考えている
3. LL, LR parse
a. 文法に曖昧さがない
b. CFGの厳密なサブセットになるわけではない。LRだけど、CFGじゃないみたいな文法が存在できる
4. LL parse
a. 左再帰がない
b. あんまりメジャーじゃない
5. LR parse
a. LLより強い
b. 曖昧さがない
c. 筆者は、静的型付け言語のように制限的だが安全であると考えている
6. PEG
a. 本質的には再帰降下
b. 何らかの問題があるらしい
7. パフォーマンス
a. そもそも現代のマシンではどの手法でも十分に早い
b. それでもLRが早い
8. エラーリカバリー
a. 再帰下降はめっちゃやりやすい
b. LRでリカバリは難しい。けど改善の余地はある
筆者は LR解析が最も実用的と考えている