04/05/04 15:51
【意味とは】URLリンク(kaiunix.cs.shinshu-u.ac.jp)
プログラミング言語の世界では意味とは一般には以下の様な物と考えられている。
┌────┐
┌───┐ │ プログラム又は.│ ┌───┐
│実行前の状態├→│ プログラム要素.├→│実行後の状態│
└───┘ │ の実行 │ └───┘
└────┘
プログラムの実行前にある状態(内部状態:プログラムが持つ変数の値の集合)にある時に、
実行後にどの様な状態になるか。普通は実行前の状態に基づいて実行後の状態を記述する。
例えば、変数aの値を2倍にするプログラムであれば、実行後の状態は次の様に書ける。
正確にはa以外の変数の値は変化していない事を記述する必要がある。
実行後のa=実行前のa*2
ここで注意すべき事は実行後の状態の記述において、実行前の変数の値を利用すると言う事である。
そのためにaに対して実行前のaと実行後のaを区別する表記が必要となる。
意味とはこの様に各命令の効果を記述する物であるが、
プログラムは基本的な構成要素およびその組み合わせ規則からなる物と言える。
その観点から考えるならば、意味の記述は以下の2つのものの記述からなることになる:
1. 基本構成要素の意味
例えば++という演算子は何を意味するか
2. 組み合わせ規則の意味
例えば、IF C THEN S1 ELSE S2 というIF文はC,S1,S2の意味に基づき、どの様な動作をするのか?