[ 目次, 前節, 次節, 索引 ]

1.1  プログラムの要素



強力なプログラム言語は, 計算機に仕事のやり方を指示する手段以上のものである. 言語はプロセスに関する考えをまとめる枠組としても役立つ. 言語について語る時, 単純な概念を統合して複雑な概念を構成するのに言語が用意している手段に特に注意しよう. これを達成するため, 強力な言語には三つの仕掛けがある.

基本式 言語が関る最も単純なものを表す.
組合せ法 より単純なものから合成物を作る.
抽象化法 合成物に名をつけ, 単一のものとして扱う.

   プログラムする時, 二つの要素: 手続きと データを扱う. (それらが実はそれ程違わないことはやがて分る.) 早くいえば, データは処理したい「もの」であり, 手続きはデータの処理法の記述である. 強力なプログラム言語は基本的データと基本的手続きが記述出来, 手続きとデータを組み合せたり抽象化したりする手段を持たなければならない.

   本章では手続きを構築する規則に注目するため, 単純な数値データだけを扱う.4 後の章で同じ規則が合成データを扱う手続きを構築するのにも使えることが分る.


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

[ 目次, 前節, 次節, 索引 ]