構造化プログラミング

時代と共に計算機環境や実装先環境の推移などの技術基盤に変化はあれど、基本的に我々の社会システムを自動化するに当たって、計算機上で動く巨大なプログラムを作成する必要性があることは、コンピュータが身近に広まりつつあった1960年代から今日に至るまで変わらない事実です。

社会システムの自動化などと大げさな例でなくとも、身近な生活に溶け込んでいる製品を動かすためのプログラムも例に漏れません。

例えば、iOS向けの単純なゲームであればソースコードの行数は約1万行[4]、心臓のペースメーカーの制御プログラムは約8万行[4]、DVDプレイヤーの再生ソフトウェアは約470万行[4]、Android OSは約1200万行[4]、そしてWindows XPは約4500万行[5]、といった具合です。

このような巨大なプログラムを作成するに当たって、最も深刻な問題の1つは、膨大な量のソースコードの作成・管理・保守を人間が行わなければならないことです。当たり前ですが、人間の理解力や記述能力は有限ですから、読み間違えたり、書き間違えたりミスをすることがまったくない、とは言い切れません。巨大なプログラムを作成するためには工夫が必要なのは明らかです。

例えば、数千行のプログラムであればまだ可能かも知れませんが、数万行を超えたプログラムのソースコードを想像してみてください。果たして読んだ人は理解できるでしょうか、殆どの読者は理解できなくはなくともそのために多大な努力が必要になることは容易に想像できますよね。

また、仮になんとか理解できたとして、本当にそのような膨大なソースコードが生み出すプログラムが正しく動作することを保証できますか、本当にソースコードで打ち間違えた、実装し間違えたところなどないといえますか。

これは非常に難しい問題です。この問題を解決するために今日までに様々な技法が生み出されました。

構造化プログラミング(Structured Programming)もそのうちの1つであり、もっとも基本となる技法・考え方(Paradigm)です。

この節では、構造化プログラミングとはどういうものか、触れていきます。

[4]: Million Lines of Code — Information is Beautiful (19/03/25 閲覧)

[5]: Windows - 2011年1月12日 - Thanks to everyone who participated in today's round of trivia ... (19/03/25 閲覧)