※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
構造物概観
配列(表,array,table)は、データを1列に並べたものです。 リスト(list)はデータを挿入や削除しやすい状態に並べたものです。 木(tree)は、枝分かれのあるデータ構造です。木の中に Heap Tree, Search Tree, B-Tree などといった特殊な木があります。B-Treeは データベースの索引を管理するのに使われています。 木の出発点のデータは根(root)と呼ばれ、枝分かれする部分を節(node) といい、それより先のないデータを葉(leaf)といいます。また、各節に おいて、元データを親(parent),分かれた各データを子(child)といいます。 待ち行列(queue)は、先入れ先出し型のデータ構造です。信号を待つ車の ように、先に到着した者が先に出てきます。通信データの処理などで使わ れる構造です。 スタック(stack)は、後入れ先出し型のデータ構造です。しばしばバケツ (bucket)とも呼ばれます。バケツの中に物を入れると後から入れたものが 先に出てきます。こういう構造のもので、サブルーチンの呼び出し元の 情報の記録に使われています。(戻る時に順番に戻れなかったら大変です) ラウンドロビン(Round Robin)は日本語では円環署名というそうです。昔 農民が一揆を起こすとき、血判状を円環状に書きました。すると誰が首謀 者かが、あとから見つかった時に分からないので「私は誘われただけで」 と言い訳できる、というものです。 コンピュータでは、マルチタスクで複数のプログラムを同時実行するとき、 実行の順番をラウンドロビンで管理しています。 網(net,web)は、データがお互いに自分と関連したものと結びつけられて いる構造体(?)です。今まで説明してきたものが結晶体だとすればこれは いわばアモルファス。HyperTextは網構造を持っています。 構造体(structure)は何か関連のあるデータをひとつにまとめて総合概念 としてとらえたものです。配列やリストが同種のデータを並べたのに対し て、構造体は異なった種類のデータをまとめるのに使います。COBOLの レコードの概念も構造体です。 クラス(class)は、構造体が更に発展したもので、関連するデータだけで なく、関連する処理までひとつのバッケージにまとめてしまったものです。 その中で完結していることが求められます。 正確にいえば、まとめたものは「オブジェクト(object)」であり、その 定義情報をクラスといいます。 たとえば「トヨタ」とか「日産」とかいったものは「会社オブジェクト」 ですが、それらを抽象的に考えると「会社」というクラスが浮かび上がっ てきます。 「会社」クラスを構成しているもの(メンバ)としては、経営者、社員、 資産、顧客、取引先、地域社会、などといった物理的構成物と、販売する、 出社する、電話する、出資する、などといった動作的構成物があります。 クラスには親子関係が出来ます。自動車会社クラスの親としてメーカー・ クラスがあり、その親として会社クラス、更にその上には集団クラスがあ ります。クラスは複数の親を持つこともあります。子のクラスは親クラス からいろいろな性質を継承し、これを遺伝(inheritance)といいます。 数学ではもの(object)とその操作(functor)の集まりのことを圏(category) といいます。クラスはカテゴリーの一種です。また現代数学を支えている 概念である「集合(set)」もカテゴリーの特殊な物(functorを持たない圏) です。 さきほどの説明でいうと、構造体は集合になり、クラスはカテゴリーに なります。カテゴリーにおいては、その各操作を逆に物と考え、物を逆に 操作と考えると双対圏(complement category)が得られます。 つまり、「私」という存在が「歩く」という動作をする、という考え方も できますが、神様の立場で発想を変えると「歩く」という存在が「私」と いう行動を取っている、とも考えられます。(かなり違和感がありますが 神様にとってはそれでもいいかも) コンピュータの操作環境においては、プログラムはfunctorであり、データ がobjectと通常は考えられます。 ところが1980年代までのほとんどのシステムは最初に functor であるプロ グラムを起動した上で、objectであるデータを「開く」という操作をする ように設計されていました。 これは神様から見たら同じことかも知れませんが、やはり普通の人間の感 覚にはなじまないものです。 マッキントッシュやウィンドウズでは、逆に object であるデータを選択 して、それからfunctor であるプログラムのアイコンの上にドラッグ& ドロップ操作で重ねて開きます。 こちらの方が、神の領域にはほど遠いほとんどの人間にはなじみやすいと 思われますがアラン・ケイ以前にはそういう発想はほとんどありませんで した。
Dropped down from digital technology.