名前と、今の値を分ける

値を追うときは、変数名を列に、実行した文を行にした表を作ります。名前xが変わるのではなく、xに格納した値が変わります。

宣言は名前や型を定めること、初期化は最初に使う値を格納すること。この入門では整数を扱い、値を読む前に初期値を定めます。

値を入れていない変数を勝手に0と仮定しません。表の「—」はこの例でまだyの初期化をしていない段階を表し、数値0とは別です。

整理して、見比べる変数と代入の読み方の整理
段階xy
初期値 3 まだ格納していない
y ← x + 2の後 3 5
x ← y × 2の後 10 5

右辺を評価してから、左辺を更新する

初期値x=3からy ← x + 2を実行すると、右辺は5になり、yへ5を格納します。この文はxを変えません。

続くx ← y × 2では、今のy=5を読んで10をxへ格納します。二つの文を同時に計算すると実行順が失われます。

トレース表には各文を終えた直後の値を記録し、使われた値と更新された値を分けて確認します。

コピーした値は、後から連動しない

今回の整数の代入でyへ格納した5は、後でxを10にしても変わりません。yは「いつでもx+2を計算する式」になったわけではないからです。

一方、別の文でyを更新すれば値は変わります。オブジェクトの参照など別の仕組みはこの授業の範囲外。

まずこの例の整数の値と順次処理を追います。初期値を0や4へ変え、式は同じでも結果が変わることを確認問題で確かめます。