文字列連結
文字列連結の中置演算子に+の記号を割り当てた言い出しっぺは誰なのか知りたかったので、
各言語で文字列連結演算子に何の記号が割り当てられているか調べてみた。
いまのところBASICの線が濃厚。
(あんまり検証してないので間違いがけっこうありそう)
FORTRAN | s = x // y |
COBOL | string x,y into s |
ALGOL | ??? |
SNOBOL | ??? |
BASIC | s$ = x$ + y$ |
PL/I | s = x + y |
ALGOL68 | ??? |
Simula | ??? |
Pascal | s := x + y |
Smalltalk | s ← x , y |
ML | s = x ^ y |
Bourne Shell | s=$x$y |
AWK | s = x y |
Ada | s := x * y |
C++ | s = x + y |
SQL | x || y as s |
Perl | $s = $x . $y |
Haskell | s = x ++ y |
Python | s = x + y |
Ruby | s = x + y |
Java | s = x + y |
JavaScript | s = x + y |
PHP | $s = $x . $y |
VimScript | let s = x . y |
Io | s := x .. y |
検索中に見つかったページいろいろ
(BASICでは)文字列の場合は変数名の最後に$記号を付けて区別する。+記号は数値同士なら加算命令、文字列同士なら連結を意味する。
http://www.shoeisha.com/book/pc/20c/chap05/gen.htm
PL/Iの特徴はデータ型にある。 文字列を表すストリング(string)型は“文字の集合”として捉えられ、ストリング型変数同士を+演算子で連結できた。
Full BASICでは文字列連結演算子は&です。Microsoft BASICでは"2"+"3"で"23"になりますが,Full BASICでは同じことを"2"&"3"と書きます。Visual BASICでは,文字列連結に&を使うこともできますが,VBでは"2"+3が5になるため文字列としての演算を行わせるために別の演算子が必要になったからです。Full BASICの場合には文法上の問題はありませんが,"2"+"3"が"23"になるのは初心者を惑わす原因になるのでそういう書き方を許しません。
http://hp.vector.co.jp/authors/VA008683/MS2Full.htm
当時の Smalltalk の文字列結合メッセージのセレクタは + だったのですね。
http://sumim.no-ip.com:8080/wiki/755
クラスや仮想関数はSimulaから、演算子の多重定義はALGOL68から受け継いだ概念である。
http://www.shoeisha.com/book/pc/20c/chap11/gen.htm
ある記号が、コンピューター言語において何に使われているか(主に何を連想するか)を主眼にしてまとめてみました。
http://www.ne.jp/asahi/hishidama/home/tech/lang/symbol.html#+
http://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E5%B9%B4%E8%A1%A8