「オブジェクト指向」の版間の差分
削除された内容 追加された内容
Betta mouse (会話 | 投稿記録) タグ: 2017年版ソースエディター |
|||
6行目:
'''オブジェクト指向'''(オブジェクトしこう、{{lang-en-short|''object-oriented''}})は、[[ソフトウェア]]設計と[[プログラム (コンピュータ)|プログラム]]記述の際に用いられる考え方である。元々は特定の[[プログラミングパラダイム|プログラミング・パラダイム]]を説明する為に考案された言葉だった。''object-oriented programming''のように修飾語として用いられるのが常であり、それ単体で扱われる事はない漠然とした設計構想でもある。{{main|オブジェクト指向プログラミング}}
== オブジェクト指向の
オブジェクト指向(''object-oriented'')という言葉自体は、1972年から80年にかけてプログラミング言語「[[Smalltalk]]」を公開した計算機科学者[[アラン・ケイ]]が、その言語設計を説明する中で初めて生み出されている<ref name="EarlyHistoryOfSmalltalk">{{Cite web|url=http://worrydream.com/EarlyHistoryOfSmalltalk/|title=The Early History Of Smalltalk|author=Alan C. Kay|accessdate=2019-02-01}}</ref>。
上述の様にオブジェクト指向とは元々[[プログラミング・パラダイム]]として編み出された理論であったが、1980年代から[[データベース]]と[[オペレーティングシステム|OS]]の開発にもその設計構想が活かされるようになり、1990年代になるとソフトウェア工学の幅広い面にも応用されて、オブジェクト指向を土台にした様々な分野が開拓される事になった。
20行目:
オブジェクト指向は、プログラミング・パラダイムとして誕生した理論である。そのデータ(変数またはプロパティ)とコード(関数またはメソッド)のセットを基本要素にして物事を解析する考え方が、1980年代から大きく注目され始めた事で、ソフトウェア工学のあらゆる局面に''object-oriented''を接頭辞にした分野が立ち上げられた。大まかな特徴としては、情報資源と処理手順を別々にして分析ないし設計を行っていた従来の標準的な手法に対し、オブジェクト指向と名が付く分野ではこの双方をひとまとめにして物事の解析と組み立てを行う点が共通している。
上記の他にも以下のような数々の分野が存在する。
* {{仮リンク|オブジェクト指向オペレーティングシステム|en|Object-oriented operating system|label=}}
* [[オブジェクト関係データベース]]
* [[オブジェクト関係マッピング]]
* {{仮リンク|オブジェクト指向ユーザーインターフェース|en|Object-oriented user interface|label=}}
* [[Booch法|ブーチメソッド]]
* [[オブジェクトモデル化技法]]
* [[オブジェクト指向ソフトウェア工学]]
* {{仮リンク|オブジェクト指向マネージメント|en|Object-oriented Management|label=}}
==オブジェクト指向とは==
45 ⟶ 54行目:
また、2003年にオブジェクト指向の意味を再び尋ねられたケイは、恐らく巷のプログラミングで言われる「カプセル化、継承、多態性」を意識した上でこのように答えている。{{Quotation|''OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.''
<br>(僕にとってのオブジェクト指向は、メッセージングと、ステートプロセスの局所保持かつ保護かつ隠蔽と、徹底的なレイトバインディング、なんとこれらだけを意味してたんだ)|Alan Kay}}
<!--誤訳を修正して頂き感謝致します。僭越ながら"of all things"は文全体にかかる副詞句と愚考しましたので浅はかながらこうしました-->
「''messaging''」「''state-process''」「''late-binding''」この三項目いずれもが''object-oriented''と同様にケイの造語なので注意が必要である。一番目は[[メッセージパッシング|メッセージ・パッシング]]の派生語である。二番目のステートプロセスは状態処理が適訳と思われるが、元々が造語であるため詳細は漠然としている。三番目はあえてハイフンが付けられてる点に留意せねばならず、ケイ流の[[ダイナミックバインディング|遅延バインディング]]と言ったところである。
オブジェクト指向を提唱する中でケイは「[[LISP]]」の影響を言及している。オブジェクト指向の実装言語である[[Smalltalk]]のメッセージング構文はLISPの式構文に似ており、また[[関数型プログラミング|関数型言語]]の構文にも似ている。LISPの設計の中で比較的重視されたのは[[高階関数|高階ロジック]]と[[S式|S式ストラクチャ]]であったという。それらに加えて初期に発表された六つの要約と、後にケイが明かした三つのコンセプトを踏まえた上でオブジェクト指向を読み解いていく。
=== その解釈 ===
|