|
第一級オブジェクト
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ファース : [ふぁーす] (n) farce, (n) farce ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana) 第一級オブジェクト(ファーストクラスオブジェクト、)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。 この言葉は1960年代にChristopher Stracheyによって「」という文脈で初めて使われた。 言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。 *無名のリテラルとして表現可能である。 *変数に格納可能である。 *データ構造に格納可能である。 *それ自体が独自に存在できる(名前とは独立している)。 *他のものとの等値性の比較が可能である。 *プロシージャや関数のパラメータとして渡すことができる。 *プロシージャや関数の戻り値として返すことができる。 *実行時に構築可能である。 *表示可能である。 *読み込むことができる。 *分散したプロセス間で転送することができる。 *実行中のプロセスの外に保存することができる。 例えばCやC++では、数値データや構造体などと異なり、配列は代入することも関数に渡すことも関数から返すこともできない(個々の要素についてはできるが、配列全体をひとつとして扱うことはできない)。そのためC/C++における配列は第一級オブジェクトではないといえる。また、関数は実行時に作成することができない。したがって関数も第一級オブジェクトではないといえる。ただし関数ポインタを使用することで上の性質の多くを満たすことができるため、第二級オブジェクトという場合もある。同様に、FORTRAN 66における文字列は変数に格納することができないため、第一級オブジェクトではない。 Smalltalkにおいては、関数(メソッド)はクラスと同じように第一級オブジェクトである。演算子(+、-)もSmalltalkにおいてはメソッドなので、やはり第一級オブジェクトである。しかしながら、新しい演算子は定義できても優先順位を変更できないなどの理由から、それらは第一級オブジェクトではないとする者もいる。 ほぼすべての言語において、整数や浮動小数点数などの最も単純なデータ型は第一級オブジェクトである。古い言語においては配列は第一級オブジェクトではなかった。それらはオブジェクトとして代入することはできず、その要素のみを直接処理することしかできなかった。 ==関連項目== *第一級関数 *オブジェクト 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「第一級オブジェクト(ファーストクラスオブジェクト、)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。この言葉は1960年代にChristopher Stracheyによって「」という文脈で初めて使われた。言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。*無名のリテラルとして表現可能である。*変数に格納可能である。*データ構造に格納可能である。*それ自体が独自に存在できる(名前とは独立している)。*他のものとの等値性の比較が可能である。*プロシージャや関数のパラメータとして渡すことができる。*プロシージャや関数の戻り値として返すことができる。*実行時に構築可能である。*表示可能である。*読み込むことができる。*分散したプロセス間で転送することができる。*実行中のプロセスの外に保存することができる。例えばCやC++では、数値データや構造体などと異なり、配列は代入することも関数に渡すことも関数から返すこともできない(個々の要素についてはできるが、配列全体をひとつとして扱うことはできない)。そのためC/C++における配列は第一級オブジェクトではないといえる。また、関数は実行時に作成することができない。したがって関数も第一級オブジェクトではないといえる。ただし関数ポインタを使用することで上の性質の多くを満たすことができるため、第二級オブジェクトという場合もある。同様に、FORTRAN 66における文字列は変数に格納することができないため、第一級オブジェクトではない。Smalltalkにおいては、関数(メソッド)はクラスと同じように第一級オブジェクトである。演算子(+、-)もSmalltalkにおいてはメソッドなので、やはり第一級オブジェクトである。しかしながら、新しい演算子は定義できても優先順位を変更できないなどの理由から、それらは第一級オブジェクトではないとする者もいる。ほぼすべての言語において、整数や浮動小数点数などの最も単純なデータ型は第一級オブジェクトである。古い言語においては配列は第一級オブジェクトではなかった。それらはオブジェクトとして代入することはできず、その要素のみを直接処理することしかできなかった。==関連項目==*第一級関数*オブジェクト」の詳細全文を読む スポンサード リンク
|