山西省の戦い
ボトムアップ構文解析
ボトムアップ構文解析（ボトムアップこうぶんかいせき、）は、構文解析において、構文木を、木の葉に相当する終端記号の列から始めて、それを順次左辺の非終端記号へ書き換え、最終的に最上位の非終端記号（たとえば「文」）を得る、というような手順によって導出する構文解析の戦略である。逆はトップダウン構文解析。
プログラミング言語の場合.
プログラミング言語のコンパイラにおけるボトムアップ構文解析は、最初に終端記号を識別し、それらを徐々に組み合わせていって非終端記号を生成する。この過程で人間の読めるソースコードで書かれたプログラムの構文木が構築され、そこからアセンブリ言語や擬似コードにコンパイルされる。
言語が異なれば構文解析技法も異なるが、実際に必要とされるより強力な構文解析技法を適用することも珍しくない。
構文解析器を使った例.
以下に簡単な例を示す。下記のような簡単な文法があるとする。
が入力とマッチするのでこれが選択され、構文解析が完了する。導出された構文木は次のようになる。
ボトムアップ構文解析では、これを逆から行い、以下のような順で導出する。
トップダウン構文解析のように力尽くの方法でも機能する。つまり、パターンマッチする生成規則が見つかるまで次々に探索していく方法である。このような単純な例では示せないが、力任せの方法では不適切な規則の適用もあり、さらに規則を適用として後戻り（バックトラッキング）することになる。これは効率的ではない。そのような後戻りを防ぐために入力を先読みして不適切な規則を適用しないという方法もある。
ボトムアップ構文解析器の種類.
以下に主なボトムアップ構文解析手法を挙げる。
経歴・人物.
概要.
歴史.
プログラム例.
Hello worldを表示するプログラムである。
// ATLヘッダー。
public:
 // ウィンドウクラス名を登録。
 // メッセージマップ。
 // 描画メッセージのハンドラー。
 // ウィンドウ破棄メッセージのハンドラー。
};
 // ウィンドウのインタンスを生成。
 // ウィンドウ表示。
 // メッセージループ。
シーズン概要.
コンストラクターズ.