[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

リファレンス (reference)

pointこの用語のポイント

point何かを参照しているよ

pointあるいはリファレンスマニュアルのことだよ

pointあるいはPerlにおけるC言語でいうポインタみたいなものだよ

スポンサーリンク

簡単に書くよ

リファレンス (reference)とは

何かの値を参照しているもののこと。
あるいは

「リファレンスマニュアル」のこと。
あるいは

プログラミング言語のPerlにおいて使われる表現で、C言語でいうポインタみたいなもの
です。

image piyo

詳しく書くよ

一番大きなくくりで言えば「何かを参照しているもの」が「リファレンス」です。
英語の「reference」は「参照」や「照合」のような意味ですからね。
何かを参照・照合していれば「リファレンス○○」と呼んで差し支えないでしょう。

ただ、IT関連で出てきた場合は、リファレンスマニュアルのことか、Perlのリファレンスを意図することが多いと思います。

リファレンスマニュアルは「辞書的な使い方をする説明書」です。
機能や使い方、注意事項などの全体を網羅している辞書っぽい奴で、最初のページから順番に見ていくのではなく、必要に応じて必要な部分をつまみ食いする類の資料です。

リファレンス

プログラミング言語のPerlで出てくるリファレンスは、C言語でいうポインタ(ポインタ変数)のような奴です。

リファレンス2

「ポインタって何ですか?」な人は、まずは用語「ポインタ変数」の解説をご覧ください。
遠回りに思えるかもしれませんが、ポインタの概念を押さえておいて損はありません。
逆に言えば、ポインタの概念が分かっていれば、Perlのリファレンスを理解するのは楽なはずです。

……C言語のポインタについては、バッチリになりましたでしょうか?
それでは、C言語のポインタを理解している前提で、Perlのリファレンスについて説明します。

C言語のポインタでは

p = &a;

と書くことで、変数「a」の居場所(メモリ上のアドレス)をポインタ変数「p」に入れることができました。
同じようにPerlでも

$p = \$a;

と書くことで、変数「$a」の居場所(メモリ上のアドレス)を変数「$p」に入れることができるのです。

また、C言語のポインタでは

*p

と書くことで、変数「a」の中身を参照することができました。
同じようにPerlでも

$$p

と書くことで、変数「a」の中身を参照することができるのです。

ここまでを踏まえて本題です。
Perlにおいて

$p = \$a;

のようにして変数のアドレスを他の変数に入れることを「リファレンス」と言います。
あるいは、変数のアドレスを入れた変数「$p」を「リファレンス」と言ったり、アドレス化した変数「\$a」を指して「リファレンス」と言う場合もあります。

細かいニュアンスは前後の文章によって違ってきたりしますけどね。
いずれにせよ「変数のアドレスを取得する行為」に関連する何かを指す用語です。

ちなみに

$$p

のようにして、リファレンスの指し示す先の値を取得・参照することは「デリファレンス」と言います。
リファレンスとデリファレンスはセットで覚えてあげてください。

多少の語弊はありますが

リファレンス→変数をアドレス化
デリファレンス→アドレスから元の変数を復活


と考えると分かりやすいと思います。

なお、C言語のポインタとPerlのリファレンスは、実際には細かい部分で違いがあります。
今の段階では気にしなくて良いですけどね。
深く突っ込んで勉強する際は、ご注意ください。

これがPerlにおけるリファレンスです。
Perl以外にも「リファリンス」という表現が使われるプログラミング言語はあるみたいですけどね。
基本的にはPerlのリファレンスと同じです。

image piyo2

一言でまとめるよ

まぁ「リファレンス」って単語が出てきたら「何かを参照しているもの、もしくは、リファレンスマニュアルのこと、もしくは、PerlにおけるC言語でいうポインタみたいなもののことなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク