必要最小限の構造化制御フロー
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/23 09:22 UTC 版)
「制御構造」の記事における「必要最小限の構造化制御フロー」の解説
「構造化プログラミング」も参照 1966年、Böhm と Jacopini は Communications of the ACM 誌で論文を発表し、goto を使って書かれたプログラムが選択 (IF THEN ELSE) とループ (WHILE condition DO xxx) のみを使って goto を使わずに書き換えられることを示した(コードの一部を複製したり、真理値フラグ変数を追加する必要がある)。後に彼らは選択もループ(と追加の真理値変数)で置き換え可能であることを示した(「構造化定理」)。 非常に良く誤解されているが、そのような書き換えが可能という事実は、単に「機械語で書けば何でも書ける」という事実と同程度の意味しかなく、それが望ましいということは全く意味しない。理論的(理論計算機科学的)にはコンピュータは一種類の命令、たとえば「subtract one number from another and branch if the result is negative」さえあれば何でもできるが(チューリング完全あるいは「万能」、en:One instruction set computer も参照)全く実用的ではなく、実際のコンピュータは多数の命令を備えているということと類似している。 Böhm と Jacopini の論文は全てのプログラムから goto 文を無くすことができることを示した。 また、他の研究により入り口と出口がそれぞれひとつになっている制御構造が他の構造よりも理解し易いということが示された。特にそのような制御構造はプログラムの任意の箇所に制御構造を乱すことなく挿入可能な点が有利とされた。 しかし実は、「理論に従ってgoto 文を無くしたプログラム」が「理解し易い」ものであるか否かは不明であり、実際のところ全くそのようにはならないのである[要出典]。
※この「必要最小限の構造化制御フロー」の解説は、「制御構造」の解説の一部です。
「必要最小限の構造化制御フロー」を含む「制御構造」の記事については、「制御構造」の概要を参照ください。
- 必要最小限の構造化制御フローのページへのリンク