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

1.2  手続きとその生成するプロセス



プログラミングの要素を見てきた: 基本算術演算を使った. それらの演算を組み合せた. 組み合せた演算を合成手続きと定義して抽象化した. しかしこれだけではプログラミングの仕方が分ったわけではない. この状態はチェスの駒の動かし方は習ったが, 緒戦, 戦術, 戦略をまだ知らない人に似ている. チェスの初心者同様, この分野での普通の使い方をまだ知らない. どの手が有効か(どの手続きに定義の価値があるか)の知識がない. 手の結果(手続きの実行)を予測する経験がない.

   検討中の行動の結果を視覚化する能力は, 他の構成的, 創造的行動におけるのと同様, 熟練したプログラマに欠かせない. 例えば熟練した写真家になるには, 情景の眺め方を習い, 露出や現像の選び方で各領域が印画紙の上にどう濃く現れるかを知る必要がある. それが出来てから逆に推測し, 構図, 照明, 露出, 現像を計画して所期の効果を得るのである. プログラミングも同じで, プロセスのとる行動の経路を計画し, プログラムによってプロセスを制御するのである. 熟練者になるには, いろいろな手続きの生成するプロセスを視覚化することを学ばなければならない. そういうことに熟達してから, 所期の行動を示すプログラムを信頼して作ることが学べるのだ.

   手続きは計算プロセスの局所的進化(local evolution)のパターンである. それはプロセスの各段階が, 先行する段階の上にどう構成されるかを規定する. その局所的進化を手続きが規定するプロセスの全体としての, 大局的(global)振舞いについて記述出来たらよいと思う. 一般的には困難だが, プロセス進化の典型的パターンに関しては記述してみることが出来る.

   この節では, 単純な手続きが生成するプロセス共通の「形」を見ていくことにする. またプロセスが時間とスペースという重要な計算資源を消費する速度も調べよう. 使う手続きは単純である. その役目は, 実際の例としてよりは, 単純化し過ぎたパターンなので, 写真術のテストパターンのようなものだ.


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