構造化プログラミングのさわり

著者:杉浦

構造化プログラミングのさわり

 構造化プログラミングはエドガー・ダイクストラらによって唱えられたプログラミング手法です。デザインパターン、オブジェクト指向のような近年も使われるプログラミング手法のひとつかふたつ前ぐらいの少し昔の手法です。少し昔といえど構造化プログラミングの発展として近年のプログラミング手法があります。構造化プログラミングは基礎的でわかりやすいです。
 構造化プログラミングは大きなプログラムを書いた時点でプログラムの正しさを証明することを目的としています。ここでいう大きな、とは達成するべき課題や目的が複雑であるということです。複雑すぎるプログラムの挙動を把握することは困難です。
 構造化プログラミングにおいて、プログラムは部品の集合と例えられます。今のプログラミング言語における関数なりクラスなりがこの部品の扱いです。構造化プログラミングでは人間が正しいと確信できる範囲の部品を積み上げていくことによって正しいプログラムを作成します。下はwikipediaから引用した箇条書きです。ここから部品のことをブロックと呼称します。
 

ダイクストラの三つの知性の道具
  1. 数え上げ推論(enumeration):一人の人間の能力でできる範囲でプログラムの命令の妥当性を一つ一つ確認していく作業
  2. 数学的帰納法(mathematical induction):while文など計算機特有の多数の繰り返し文についてのみ数学的帰納法を用いて確認する作業
  3. 抽象(abstraction):プログラムのブロックなどに名前をつけ、さらに中身を見ないで正しいと仮定することで検証作業を後回しにする操作

 数え上げ推論と数学的帰納法によって正しいとされたプログラムのブロックに名前を付け抽象化する。抽象化されたブロックを用いてまたプログラミングを行い、できあがったプログラムのブロックを数え上げ推論と数学的帰納法によって正しいと証明して、その正しいとされたブロックを抽象化して、…と繰り返して最後に大きなプログラムを完成させます。
 この手法は一つ一つのプログラムのブロックが正しいとわかるぐらい、理解しやすくなければ実現できません。この辺りが今も読みやすいコードの書き方が大事にされる理由の一つではないでしょうか。

  • この記事いいね! (0)

著者について

杉浦 administrator