クエリ: オブジェクト指向プログラミングが開発されたのはいつ
文章: オブジェクト指向プログラミング Simula 1962年 オブジェクトとクラスを導入した最初の言語。また、C++が再定義したオブジェクト指向プログラミング言語の要件を満たすことから、最初のオブジェクト指向プログラミング言語とされることもある。クラスベース。当初はシミュレーション記述用に開発されたものであったが、後に汎用化された。 Smalltalk 1972年 オブジェクト間の相互作用に<b data-parsoid='{"dsr":[7033,7044,3,3]}'>メッセージ</b>という機構を導入した最初の言語。オブジェクト指向と言う言葉は、Smalltalkのプログラミングスタイルを説明するために作られた。動的な型付けにより高い柔軟性を持つ。 C++ 1979年 C言語のオブジェクト指向拡張。Simula言語風にクラスを定義でき、C言語の型システムを強化している。当初はC言語に対して上位互換であった。また、強い型付けによりC言語譲りの実行効率の高いコードが生成できる。 Objective-C 1983年 C言語のオブジェクト指向拡張。C言語のコードとSmalltalk型のオブジェクトシステムを混在させたもの。オブジェクトシステム自体はCで書かれたランタイム。 Eiffel 1986年 強い型付けを行う型システムや表明など堅牢性を強く意識して設計されたオブジェクト指向プログラミング言語。C++にテンプレートが導入される前に総称型を導入していた。 Self 1987年 最初のインスタンスベースのオブジェクト指向プログラミング言語。 CLOS 1988年 関数型言語Common Lispのオブジェクト指向仕様。 Modula-3 1988年 モジュールを実現していたModula-2言語のオブジェクト指向拡張。 Python 1990年 最初のオブジェクト指向スクリプト言語。 Sather 1990年 Eiffelを拡張したもの。実行効率面での工夫が見られる。 NewtonScript 1993年 PDA環境用に修正されたSelf言語。PDAの性質を生かすため永続オブジェクトをサポートしている。 Ruby 1993年 オブジェクト指向スクリプト言語。クラスのMix-inなどのユニークな機能を持つほか、正規表現に渡るまで全てがクラスとして実装されていることが特徴。 Perl 1994年 Perl 5.0にてオブジェクト指向に対応。既存のPerl言語に後付けで拡張されたため記法は特殊だが、機能面では他のオブジェクト指向言語に引けを取らない。 Adaのオブジェクト指向拡張 1995年 恐らく最も仕様が複雑なオブジェクト指向プログラミング言語。 Java 1995年 仮想マシン(Java仮想マシン)上で動作することによる高い可搬性、リフレクションやスレッドの標準サポートと充実したライブラリ群で知られているオブジェクト指向プログラミング言語。 Object Pascal (Delphi) 1995年 Pascal言語のオブジェクト指向拡張。 JavaScript 1996年 ウェブページ上で実行することを主目的に開発されたスクリプト言語。プロトタイプベースの言語である。 OCaml 1996年 関数型言語MLのオブジェクト指向拡張。クラスが型推論機構に組み込まれているという特徴がある。 PHP 2000年 動的にWebページを生成することを主目的としたスクリプト言語。バージョン4からオブジェクト指向に対応し、バージョン5でアクセス権やインターフェースなど、オブジェクト指向の強化が行われている。 C# 2000年 Javaとよく似た作りでJavaと同じく仮想マシン上で動作するが様々な部分で拡張されている。.NET Framework上で動く。 Visual Basic.NET 2002年 既存のVisual Basic(6.0以前)を大きく改訂してオブジェクト指向に対応。C#同様.NET Framework上で動く。 COBOL 2002年 2002年に制定された国際規格に、オブジェクト指向機能が採用された。1994年には、国際規格案を先取りした商用コンパイラ上で利用可能になった。オブジェクト指向構文を使わないCOBOLプログラムと混在できる。 Ceylon 2011年 Java をもとにつくられ、Java のもつ長所と短所を考慮しつつ、商用言語として再設計された言語。 Swift 2014年 Objective-Cのオブジェクトを引き継ぎながらも、ベースのC言語を取り除いて新しく再設計された言語。
文章: Sather Satherはカリフォルニア大学バークレー校(UCB) と提携し、ICSI(International Computer Science Institute)によって開発されたオブジェクト指向プログラミング言語である。 文章: オブジェクト指向モデリング オブジェクト指向のモデルの非形式的な記述や形式的な記述は、プログラマあるいは (形式的な記述の場合は) Computer-aided software engineering ツール (CASEツール) によって、オブジェクト指向プログラミングをサポートするプログラミング言語 (オブジェクト指向プログラミング言語) のプログラムに変換されたり、データベース言語のスキーマのコードに変換されたりする。 文章: まつもとゆきひろ プログラミング言語「Ruby」の開発者。1993年(平成5年)から開発を始めたRubyは、その後、手軽なオブジェクト指向スクリプト言語として日本国外にも普及した。 文章: グラディ・ブーチ 1980年代初めから、ブーチはソフトウェアのモジュール化による設計およびオブジェクト指向設計に取り組んできた。この時期に情報技術の分野ではオブジェクト指向設計の概念が提唱され実践されはじめていた。ブーチは、この頃からソフトウェア工学について論文を含め活発な執筆活動を行っている (#著書の節を参照) 。ブーチはBooch法というオブジェクト指向ソフトウェア開発方法論を開発した。著書『Booch法:オブジェクト指向分析と設計』でBooch法を説明している。 文章: オブジェクト指向分析設計 オブジェクト指向分析設計 (オブジェクトしこうぶんせきせっけい、OOAD、 ) は、ソフトウェア工学において、ソフトウェア (システム) を相互作用するオブジェクトの集まりとしてモデル化 (オブジェクト指向モデリング) する、オブジェクト指向に基づくソフトウェア開発の方法である。オブジェクト指向の理論的枠組みに基づくソフトウェア開発、すなわちオブジェクト指向開発を行う際の、ソフトウェア開発工程において、分析工程であるオブジェクト指向分析 (OOA; object-oriented analysis) と、設計工程であるオブジェクト指向設計 (OOD; object-oriented design) の、総称である。なおプログラミング工程は、オブジェクト指向プログラミング (OOP; object-oriented programming) という。オブジェクト指向プログラミングの詳細については同項目を参照のこと。オブジェクト指向開発の具体的な方法論を、オブジェクト指向開発方法論 (object-oriented methodology) という。この項目では、オブジェクト指向開発におけるオブジェクト指向分析とオブジェクト指向設計、およびオブジェクト指向開発方法論を、主に説明する。 文章: Ruby Ruby(ルビー)は、まつもとゆきひろ(通称 Matz)により開発されたオブジェクト指向スクリプト言語であり、スクリプト言語が用いられてきた領域でのオブジェクト指向プログラミングを実現する。また日本で開発されたプログラミング言語としては初めて国際電気標準会議で国際規格に認証された事例となった。 文章: オブジェクト指向モデリング クラスは、オブジェクトの設計図に相当するものである。オブジェクトそれぞれが属性とメソッドをもち、すべてのオブジェクトのメンバ (属性とメソッド) は、そのオブジェクトが属するクラスで定義されている。こうしたオブジェクトの定義 (クラス) は、スキーマである。詳細は、オブジェクト指向、オブジェクト指向分析設計、オブジェクト指向プログラミングの項目を参照。 文章: Java 一方で、サンの別のエンジニア、ビル・ジョイは、ゼロックスのパロアルト研究所でAltoというワークステーション試作機のために開発されたプログラミング言語・MesaとCの良いとこどりをした新しいプログラミング言語を構想していた。ジョイは "Further" という名前で呼ばれる論文を書き、自社でC++に基づいたオブジェクト指向環境を開発するべきであることを進言した。まずジェームズ・ゴスリンがC++を改変し拡張することを試みた。ゴスリンはこの拡張版C++を、"C++ ++ --"と名付けた。しかしゴスリンは、すぐにこの拡張版C++の開発を中止して、全く新しいプログラミング言語を開発する方針を採ることにした。ゴスリンはこの新しい言語にOakという名前をつけた。この名前の由来は、ゴスリンのオフィスのすぐそばにオークの木が立っていたことによる。 文章: オブジェクト指向分析設計 オブジェクト指向プログラミングでは、ほとんどの場合、プログラミング言語としてオブジェクト指向プログラミング言語 (OOPL; object-oriented programming language) を採用する。オブジェクト指向プログラミング言語では、オブジェクト、クラス、情報隠蔽、継承、多態性 (ポリモフィズム) などの概念を、プログラミング言語に組み込んでいる。そのため、オブジェクト指向プログラミング言語を有効に活用することで、オブジェクト指向プログラミングを効率的に行うことができる。 文章: Objective-C Objective-Cは、1983年にとTom Loveによって開発され、そのコンパイラやライブラリを支援するためにStepstone社を創立した。Stepstone社は、Objective-Cに力を注いだが、それはマイナーな存在であった。Objective-Cが認知され始めるきっかけは、1985年、アップルコンピュータを去ったスティーブ・ジョブズが、m68k機であるNeXTコンピュータとNeXTSTEPオペレーティングシステムの開発を行うNeXT Computer社を創立したことに始まる。 文章: オブジェクト指向プログラミング メッセージ (コンピュータ) メソッド (計算機科学) フィールド (計算機科学) インスタンス変数 クラス変数 クラス (コンピュータ) インスタンス カプセル化 継承 委譲 プログラミング言語 オブジェクト指向モデリング オブジェクト指向分析設計 オブジェクト指向 オブジェクトデータベース トップダウン設計とボトムアップ設計 オブジェクト関係マッピング 文章: オブジェクト指向プログラミング オブジェクト指向プログラミングという考え方が生まれた背景には、計算機の性能向上によって従来より大規模なソフトウェアが書かれるようになってきたということが挙げられる。大規模なソフトウェアが書かれコードも複雑化してゆくにつれ、ソフトウェア開発コストが上昇し、1960年代には「ソフトウェア危機 (software crisis)」といったようなことも危惧されるようになってきた。そこでソフトウェアの再利用、部品化といったようなことを意識した仕組みの開発や、ソフトウェア開発工程の体系化(ソフトウェア工学 (software engineering) の誕生)などが行われるようになった。 文章: オブジェクト指向プログラミング このような場合、各オブジェクトがそれぞれメッセージ処理のコード(前述の「振る舞い」に当たる)を独自に備えていては無駄である。そこでオブジェクト指向プログラミング言語がオブジェクトを実現する際には多くの場合、内部的にはオブジェクトを2つの部分に分けている。 文章: オブジェクト指向プログラミング 多くのプログラミング言語においてメッセージは、メソッド呼び出しの比喩でしかないことが多い。SmalltalkやObjective-Cの様な言語では、メッセージはメソッド呼び出しとは独立した機構として存在している。メッセージが機構として存在する言語では、メッセージをオブジェクトに送信した際、宛先のオブジェクトにメッセージで指定したメソッドが存在しない場合でもメッセージを処理することが出来る。これを利用し、メッセージの配送先を別のオブジェクトに指定したり、メッセージを一時保存したり、不要なメッセージを無視する等といったメッセージ処理が行われる。 文章: アスペクト指向プログラミング オブジェクト指向プログラミングとは直交するプログラミングパラダイムである。