科学と家事とプログラミング (python を中心に)

python 温度計測 湿度計測 DS18B20 USB9097

超構造化(08) 「制御の流れ」って何?

コントロールという単語の使われ方

時々、制御の流れという言葉を見たり使ったりするけれど、どうにもすわりが悪い。 control flow の直訳に違いないが、制御って流れるものなのか? 処理の流れの方がましかと思ったりもする。 あらためてコントロールという言葉の使い方を振り返ってみると、

  • 野球のピッチャーの制球(Control)
  • 工学分野の一つである制御工学 (Control Engineering)
  • 製造現場で使われるインターフェース管理図面(Interface Control Diagram/Drawing),
  • 生物/医療などの対照実験 (Control を採るといった使い方をする)

それぞれ、基準(値)に基づく調整/管理/比較を表している。 共通するのは「基準(値)」の存在だ。 同じ管理でも、management は、基準(値)を定める上位の活動を指すような印象がある。

制御の流れは何だか変...

さて、話は control flow である。 制御の流れの control は、steer や pilot という動詞との関連が強そうに思う。 原義としては、定めた(定められた)ラインに沿ってビークルを運転する感じだろうか (そもそも、ここで大きく外している可能性はある)。 もちろんここでもラインが基準(値)に相当する。 control transfer といえば、実行権を移す意味で使われる。 この場合の control は、抽象概念としての実行や調整、あるいはその権限といった理解でよいのだろう。 「制御」というコトバから、これらの意味を感じとる専門家であれば、 「制御の流れ」という言葉に違和感はないのかもしれない。 そうだとしても、範疇がずれる気持ち悪さは残る。 つまり、「<処理>の流れ」と「<制御>の流れ」が等価であるなら、 <処理>と<制御>が等価ということになり、結局、<制御(処理の順番の変更)>と、 制御の対象である<処理>が等価であるということになる。 CPU が順次命令を実行する様を制御と呼ぶのは、なんとなく分かる気がする。 それを高級言語の制御構造にまで適用するから、モヤモヤするだけかもしれない。

f:id:sken20k:20180210215620j:plain 背景はフリー素材を使わせてもらったが、桃が描けず...