Up プログラムの階層構造 作成: 2026-09-07
更新: 2026-09-07

4足歩行ロボット > 自律型> コンピュータ > ソフトウェア > 言語 > プログラムの階層構

    製品の製造ラインは,
      仕掛品 (WIP, work in process) 製造の階層構造
    になっている:

        製品A=仕掛品_n
             ↑← 作業_n
             ︙
             ↑← 作業_2
            仕掛品1
             ↑← 作業_1
           部品セット

    ここで,階層を構成しているのは仕掛品であって,作業ではないことに注意。
    作業_k は,仕掛品_k が出来たら,また始めに戻る。──自閉している。

    また,仕掛品_k+1 は,仕掛品_k の一部の変化であることが普通である。
    「下層を隠蔽」 は,「層」 の条件ではない。


    コンピュータは,プロセッサとメモリが要素。
    プログラムを書くとは,プロセッサへの命令を書くこと。
    プロセッサへの命令を書いているつもりが無いのにそうなっているのは,プロセッサに直接命令する言語 (機械語) といま使用の言語の間に,「翻訳」 のネットワークがあって,これをシャドーワークにしているからである。

    このネットワークは,人が時間をかけて構築してきたものである。
    この構築は,いまのプログラム言語を 「製品」 とする 「製造ライン」 に見立てることができる:

        製品A=仕掛品_n
             ↑← 作業_n
             ︙
             ↑← 作業_2
            仕掛品1
             ↑← 作業_1
            機械語

    ひとは,仕掛品_k・作業_k として大きなトピック・エポックを書きたがるが,実際はマイナーな作業・仕掛品の蓄積であり,名前をあてれば 「いかがわしい図」 になる。


    さて,この場合の 「仕掛品_k」 だが,これはその段階のプログラミング言語である。
    これはつぎの2つで成る:
       P_k : プログラミング法 (文法/pragmatism)
       T_K : P_k を P_k-1 に戻す翻訳規則
    プログラミング言語が独特であるのは,翻訳規則とペアだという点である。

     要点:
      プログラミング言語は,機械語とつながっていなければならない。


    「作業_k」 にあたるのは,どんなことか。
    歩行ロボットのソフトウェアに関することだと,例えば
      「Pub/Sub データ流通」のアイデアをもつ。,
      これを記述できる言語階層まで降って,コードを組む。
      これを,いまの言語 (仕掛品_k-1) で,マクロ化する。
      マクロの翻訳規則を書く。
      マクロと翻訳規則のセットを,DDS の名で発表する。
      これを,いまの言語に追加する。
      この結果が,仕掛品_k。


    「OS」 や各種 「高級言語」 も,こんな調子で説明される事柄である。
    技術論はこれらを "wrapper" のように表現したがるが,これは錯覚・錯認である。

    OS や各種言語 (また 「ミドルウェア」 とか 「API」 と呼ばれているもの) は,すべてコンピュータのメモリの海に浮かぶ島である。
    作業_k は,新しく島をつくったり,既存の島に変化を与える。
    島は,横に並ぶだけで,上下構造にはならない。

    上下構造になるのは,これらの島を利用する pragmatism である。
    しかしこれも,wrapper とまではいかない。はない。
    部分的な patch で収まるといったものである。