17.4.19 プログラムの実行のされ方

コンピュータはプログラムをどのように動かしているのでしょうか. いままで見てきたプログラムは比較的単純な例ばかりだったので, 「人間が数式を計算するのと同じように計算する」という理解で充分だったかも知れません.

しかしOcamlのような言語のプログラムは, あくまでも人間にとって読み書きしやすいようになっているものであって, コンピュータのCPUはそれを直接実行することはできません. 実際には, 与えられた式を一定の規則に従って変形してゆくことで答えを求めていっています.

例えば

let square(x) = x *. x
let discriminant(a,b,c) = square(b) -. 4.0 *. a *. c

という関数が定義されていたときに、 discriminant(1.0,-5.0,6.0) という式を入力した場合の実行を見てみましょう。

計算に使った方針をまとめると、次のようになります: