PHPやPerlで変数の記号に「$」が使われる理由

PHPやPerlで変数の記号に「$」が使われる理由

Posted at September 27,2011 1:55 AM
Tag:[Perl, PHP]

PHPやPerlで変数を定義するとき、当たり前のように先頭に「$(ドル/ダラー)」をつけていますが、ふと、

「変数の前に付ける記号はなぜ『$』なんだろう?」

と思い立ち、そんなことはものの本に書かれているのかもしれませんが、ネットで調べてみました。

ちなみにPerlで「$」を使うのはスカラ変数だけです。

1.「$」はBASIC言語から使われている

BASIC言語では変数の型で文字列を表すときに、次のように「$」を使っています。ただし変数の前ではなく後につけています。

10 READ A$
20 READ B$
30 C$=A$+B$
40 PRINT C$

また「『$』はBASICの名残で使っているようです」という記事をみつけました(ただしVBの話として)。

2.「$」は「ストリング」?

仮にPHPやPerlなどがBASICの名残で「$」を継承していると仮定しても、なぜBASICでは「$」を使っていたのでしょうか。

調べていると、Wikipediaの「Dollar sign」の解説の中に次のような記述がありました。

$ was used for defining string variables in older versions of the BASIC language ("$" was often pronounced "string" instead of "dollar" in this use).

推測の域を超えませんが、「$」という記号は縦棒がなければ「S」になるので、BASICの時代には「$」は文字列(String)を意味する記号として使われていたのかもしれません。

Perlの場合はスカラー(Scalar)の「S」として使っているのかもしれません(推測で書いてます)。

ということで明確な情報が得られていないので、情報お待ちしています。

2011.10.16追記
オライリー「初めてのPerl第5版」のP53に、「Larryの主張は、$calar,@rrayの意味で定義している」旨の記述がありました。

3.Perlの「@」や「%」の由来は?

話がそれますが、Perlの配列変数を示す「@」は「a」に似ているので「Array」を意味しているのかもしれません(これも推測です)。

また、ハッシュ変数を示す「%」は、簡単なハッシュ関数で割り算を利用した余りを使うので、その演算子を示す「%」からきているのでしょうか(もちろん推測です)。

こちらも情報お待ちしています。

4.参考サイト

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)