辞書へ戻る概念の一覧

オブジェクト指向

おぶじぇくとしこう概念1967

データとそれを扱う処理を「オブジェクト」としてまとめて考える設計の考え方。Simulaで芽生えSmalltalkで確立し、C++Javaを通じて主流になった。大きなプログラムを部品に分けて扱う、長く使われてきた発想。

年表

1961Ole-Johan DahlとKristen Nygaardがノルウェー計算センターで計算機シミュレーション記述言語の開発に着手
1967SIMULA 67が完成。カプセル化・継承・遅延束縛・動的オブジェクト生成というオブジェクト指向の中核要素がすべて導入される

概要

データとそれを扱う処理を「オブジェクト」としてまとめて考える設計の考え方。大きなプログラムを、自律的に動く部品(オブジェクト)の集まりとして組み立てる発想で、Simulaで芽生えSmalltalkで確立し、C++Javaを通じて主流になった。

時代背景

1961年、ノルウェー計算センター(Norwegian Computing Center)でOle-Johan DahlとKristen Nygaardが、計算機シミュレーションを記述するための言語の開発に着手した。二人が作り上げたSIMULA言語はいくつかのバージョンを経て、1967年に「SIMULA 67」として完成する。この言語は、今日のオブジェクト指向言語で不可欠とされる要素――カプセル化、継承、遅延束縛(late binding)、動的なオブジェクト生成――をすべて導入していた。この設計スタイルは後に「オブジェクト指向プログラミング(OOP)」と呼ばれるようになった。

種類・系譜

SIMULAの考え方は、その後世界中に広がっていった。1970年代、アメリカのAlan KayがSIMULAのアイデアを取り入れてSmalltalk言語を作った。1980年頃には、Nygaard本人からSIMULAを学んでいたBjarne Stroustrupが、C言語の開発者コミュニティにSIMULAの思想を持ち込み、C++を生み出した。さらに10年後、Sun社のJames GoslingがSIMULAのオブジェクト指向の仕組みをC++以上に忠実に踏襲したJavaを開発した。

現在

オブジェクト指向プログラミングは、今日のプログラミングにおいて最も広く使われているパラダイムであり続けている。ほぼすべてのプログラマが、オブジェクト指向をサポートする言語を使った経験を持ち、日常的に動いている大規模ソフトウェアシステムの多くがこのスタイルで書かれている。

分野プログラミング設計
起源Simula

関連項目

  • Simulaノルウェーで作られた、シミュレーション向けの言語。「クラス」や「オブジェクト」という概念を初めて言語に持ち込み、オブジェクト指向プログラミングの源流とされる。後のSmalltalkやC++に流れ込む発想がここで生まれた。
  • Smalltalkゼロックスのパロアルト研究所で生まれた、純粋なオブジェクト指向言語。すべてをオブジェクトとメッセージで表す思想と、開発環境そのものを内包する発想は後世に大きな影響を与えた。GUIやIDEの原型ともつながっている。
  • Javaサン・マイクロシステムズが開発した、「一度書けばどこでも動く」を掲げた言語。仮想マシン上で動く仕組みで環境差を吸収し、企業システムやAndroidアプリの基盤として広く普及した。

関連技術

出典