2018年04月11日に初出の投稿

Last modified: 2018-04-11

Why Does "=" Mean Assignment?

初めてプログラムを書いたのは、SHARP の MZ-80B というコンピュータを買った中学1年生の頃だった。SB5520 というシャープの専用言語をマニュアルで覚えるところから始めたのだが、"=" を等号と混同して混乱するようなことはなかったと思う。なので、プログラミングの初心者にとって、この混乱が一つのハードルになっていると言われてもピンと来ないのだが、混乱よりも寧ろ「ピンと来ない」のは何故なのかを知りたい。なぜなら、「ピンと来ない」というのは自慢でもなんでもなく、その方が異常だとも言い得るからだ。どうしてかと聞かれて、「C がそうなってるから」というのは、もちろん理由になっていない。どうして C 言語を設計するときに等号を代入なり割当ての記号として採用したのか(設計した当人は混乱しなかったのだろうが、それはなぜか)ということを明らかにしなくてはいけない。だいたい、プログラミングやコーディングにおいても、等号をこういう目的で流用しているせいで、

if ( $foo = $bar ) { echo "match!"; }

などというバグが発生しやすくなるのだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Google+ Twitter Facebook