構文木を評価する:葉から値が登る

(a + b) × (c − d) の抽象構文木で、葉のリテラルから値が根へ登っていく様子を見ます。

3
5
8
2
演算子①(a と b を結ぶ)
演算子②(c と d を結ぶ)
演算子③(根:左右の結果を結ぶ)

「1ステップ評価」を押すと、評価順(後行順=葉→根)に沿ってノードが1つずつ計算され、値が上へ登ります。スライダーや演算子を変えると評価はリセットされます。木の葉ノード(a・b・c・d)を上下にドラッグして直接値を変えることもできます。

現在の式
評価済みノード
根の値(最終結果)
評価ログ(葉から根への後行順)
抽象構文木(緑=評価済み・橙=次に評価するノード)
(a + b) × (c − d) のような式は、コンピュータの中では抽象構文木(AST)という木の形で表されます。 数や変数は葉(リーフ)、演算子は内部ノードです。
評価は葉から始まり、子の値がそろったノードだけが計算でき、結果が親へ登っていきます。 根(一番上)まで登りきった値が、式全体の答えです。
葉の値や演算子を変えると答えが変わり、「木の形」がそのまま「計算する順序」を決めていることが見えてきます。

いま何が起きている?

ここがポイント