コンピュータのプログラムをつくるときに、理解しやすく、修正しやすく、正しさが検証しやすいプログラムになるように、問題を段階的に詳細にしていき、最終的には制御構造が明確なプログラムをつくる方法論。1960年代の終わりごろにダイクストラEdsger Wybe Dijkstraが提唱し、現在のあらゆるプログラムの作成方法に影響を及ぼしている。構造的プログラミングとか構造化プログラミングともいう。
ストラクチャードプログラミングは次のように行う。
プログラムをつくるときには、まず「何を」しなければならないかをよく考え、「しなければならないこと」を大まかに順を追って記述する。次に、いま記述した「しなければならないこと」のうちの一つ一つについて、そうするためには「何を」しなければならないかを考え、その「しなければならないこと」を順を追って記述する。当然、この記述は一段階前の記述よりも細かくなっている。このようにして、いちばん初めに記述したことが目的とするプログラミング言語(プログラム言語)によってすべて表現されるまで続ける。このとき、そこで扱うデータも手順の詳細化の程度と歩調をあわせて詳細化していく。最終的なプログラミング言語による表現は、いちいちの手順を表したものであり、「どう」すべきかを表現したものになるので、詳細化の段階ではすこしずつ「どう」すべきかを決定しながら、最終的なプログラミング言語での表現を持ち込んでいく。ただし、「どう」すべきかの決定は、できる限り遅らせるほうがよい。
最終的な制御の構造としては、
(1)順次(sequence) 上から順番に一つずつ文を実行していく構造
(2)選択(selection) if‐then文、if‐then‐else文、case文
(3)繰り返し(repetition) while‐do文、repeat‐until文
だけを用いることを原則とする。
これらは、すべて実行時には制御が上からきて下に行くという性質がある。そこで、プログラムの先頭から並んでいる順に文が実行されることになるので、理解しやすくなる。goto文があると実行時の制御の流れがこのようにはならず、できあがったプログラムは理解しにくくなり、間違いのもとになるので、goto文はできる限り使わないほうがよい。しかし、前述の制御構造だけでは、構造化はされるがかえってわかりにくくなるような場合も出てくる。そのような場合で、しかもgoto文を使ったほうがわかりやすい場合に限って使うようにすべきである。
[土居範久]
10/29 小学館の図鑑NEO[新版]動物を追加
10/22 デジタル大辞泉を更新
10/22 デジタル大辞泉プラスを更新
10/1 共同通信ニュース用語解説を追加
9/20 日本大百科全書(ニッポニカ)を更新
7/22 日本大百科全書(ニッポニカ)を更新