文字列連結

文字列連結の中置演算子に+の記号を割り当てた言い出しっぺは誰なのか知りたかったので、
各言語で文字列連結演算子に何の記号が割り当てられているか調べてみた。
いまのところ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では)文字列の場合は変数名の最後に$記号を付けて区別する。+記号は数値同士なら加算命令、文字列同士なら連結を意味する。
PL/Iの特徴はデータ型にある。 文字列を表すストリング(string)型は“文字の集合”として捉えられ、ストリング型変数同士を+演算子で連結できた。

http://www.shoeisha.com/book/pc/20c/chap05/gen.htm

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#+

プログラミング言語年表 - Wikipedia

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