構文木を評価する:葉から値が登る
式 (a + b) × (c − d) の抽象構文木で、葉のリテラルから値が根へ登っていく様子を見ます。
3
5
8
2
演算子①(a と b を結ぶ)
演算子②(c と d を結ぶ)
演算子③(根:左右の結果を結ぶ)
「1ステップ評価」を押すと、評価順(後行順=葉→根)に沿ってノードが1つずつ計算され、値が上へ登ります。スライダーや演算子を変えると評価はリセットされます。木の葉ノード(a・b・c・d)を上下にドラッグして直接値を変えることもできます。
現在の式
—
評価済みノード
—
根の値(最終結果)
—
評価ログ(葉から根への後行順)
抽象構文木(緑=評価済み・橙=次に評価するノード)
(a + b) × (c − d) のような式は、コンピュータの中では抽象構文木(AST)という木の形で表されます。
数や変数は葉(リーフ)、演算子は内部ノードです。評価は葉から始まり、子の値がそろったノードだけが計算でき、結果が親へ登っていきます。 根(一番上)まで登りきった値が、式全体の答えです。
葉の値や演算子を変えると答えが変わり、「木の形」がそのまま「計算する順序」を決めていることが見えてきます。
いま何が起きている?
ここがポイント
- 葉=値、内部ノード=演算子 ── 木は式の構造そのものを表す。
- 子がそろってから親を計算 ── 値は必ず葉から根へ「登る」(後行順・ボトムアップ)。
- 木の形=評価順序=かっこ ── 木の組み方が、どこから計算するかを決める。
- ノードを編集すると結果が変わる ── 変わった葉から根までの経路だけ値が更新される。