直交性 (情報科学)

情報科学における直交性とは、特定の機能体系内で例外的な振る舞いを行う要素の多寡を指し示す慣用的な用語である。どの要素も本質的には同じように振る舞うならば直交性が高い、要素毎の癖が強いならば直交性が低い、と表現する。

機能の直交性が高いということは、一つの要素について知れば他の要素でも類推が効くということである。したがって利用者にとっては、直交性の高さはその体系の使い勝手が良いことを意味する。

この用語は文脈によって様々な意味に用いられるので扱いには注意が必要である。

CISC CPUと直交性編集

初期のCPU設計での「直交性」とは、一部の特殊な命令を除いて、命令がオペレーションとアドレッシングモードの組み合わせで表現され、その組み合わせに制限がないことをいう。直交性の高い設計としてはVAXが著名である。CISCアーキテクチャの命令体系の特徴の一つとされる。

RISC CPUと直交性編集

RISCアーキテクチャのCPU設計では、多数の汎用レジスタを持つ。どのレジスタでも同等に取り扱える点を指し「レジスタの直交性が高い」と表現する。

ソフトウェアと直交性編集

ソフトウェアでの直交性は、機能間の組み合わせや順序について依存関係が小さいことを意味する場合が多い。具体的には次のような事例を指す。

  • オブジェクトへの操作があるなら逆操作もある。
  • プロパティ間に依存関係がない。
  • 不変契約が保持されている。