[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
996: はちみつ餃子◆8X2XSCHEME (ワッチョイ b732-jewZ) [sage] 2025/04/27(日) 17:44:14.12 ID:0aN/b0Iq0(1) AAS
ダイクストラが言う構造化プログラミングはモジュールとか抽象データ型とかも含む広範で抽象的な概念として説明されている。
連接・分岐・反復で構成しようという話はそれより前に発表されたものだが、この時代は構造化もクソもないプログラムがまかり通っていたという前提がある。
まずはその三要素を基礎に据えて構成したらわかりやすくね? という提案 (というか感想?) に過ぎず、それで全て事足りるみたいな主張ではない。
(理論上は連接・分岐・反復で全て表現可能であるという証明はされている。)

構造化プログラミングの考え方のキモは構造は人間の認知の中にあるということ。
人間が思考しているときの構造を書き表すためにどんな言語機能 (またはデザインパターン) があればよいの? ってのが構造化プログラミングの議論なんだよ。
書いた人が思ってる構造が表現されているなら構造化プログラミングだし、構造化プログラミングのために用意された機能を使っていても構造が表れていなければ構造化プログラミングではない。
まあついでに言えば書き表されたものについて (コンパイラも人間も) 検証しやすいことも大事だ。

機械的に goto を除去したらむしろ構造が失われるという例をクヌースが出したりもしていて、結局のところはどんな機能も正しく使えば正しいし、悪い使い方をすれば駄目になるというシンプルな話。
そんなわけで break が構造化を崩すか崩さないかは使い方による。
ただ、常識的に考えて break は goto より構造を破綻させにくいだろうってだけ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s