プログラムする時, 二つの要素: 手続きと データを扱う. (それらが実はそれ程違わないことはやがて分る.) 早くいえば, データは処理したい「もの」であり, 手続きはデータの処理法の記述である. 強力なプログラム言語は基本的データと基本的手続きが記述出来, 手続きとデータを組み合せたり抽象化したりする手段を持たなければならない.
本章では手続きを構築する規則に注目するため, 単純な数値データだけを扱う.4
後の章で同じ規則が合成データを扱う手続きを構築するのにも使えることが分る.
4
数を「単純なデータ」というのはごまかしだ. 事実, 数の扱いはプログラム言語で一番怪しげ, かつ訳の分らないものである. 代表的な例はこうだ:
ある計算機では2のような整数(integers)を, 2.71のような実数
(real numbers)と区別する. では実数2.00は整数2とは違うのか? 整数用の算術演算は実数用の演算と同じか? 6割る2は3か, それとも3.0か? どのくらい大きな数まで表現出来るか? 何桁の精度まで表現出来るか? 整数の範囲は実数の範囲と同じか?
これらの問題の他にももちろん丸めや打ち切り誤差---数値解析学全体に関して一連の問題がある. 本書の目的は数値技法ではなく, 大規模プログラムの設計にあるので, こういう問題は無視する. 本章の数値例は, 非整数演算では,
限られた桁数の精度を保存する算術演算を使った時に見られる, 通常の丸めの様子を示す.