俺にかまうな,先に行け

図書館情報学を専攻している学生のあれこれです.

メタ構文変数

メタ構文変数(metasyntactic variable)は、サンプルプログラムなどで意味のない名前が必要な場合に利用される、まるで意味のない言葉です。
プログラミングを学び始めた頃、解説書を読んで「fooとかhogeとか、一体何なんだ?」と思った経験がみなさんおありかと思います。
調べていたら面白かったのでまとめておきます。

foo, bar, baz……
世界標準らしきもの。
bazに続いて、
qux, quux,foobarって言う人もいれば、
qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thudって言う人もいるし、
qux, quux, corge, uier, grault, garply, waldo, fred, plugh, thud, mos, henk, defと言う人もいて、
はたまたqux, quux, quuux, quuuux...なんて人もいる。
宗派の違いがあるようです。

hoge,fuga,piyo……
日本でのみ使用されているもの。
hoge(ほげ)」「fuga(ふが)」「piyo(ぴよ)」「hogera(ほげら)」「hogehoge(ほげほげ)」と読むそうで。可愛いですね。
他にもご当地ものでは、
イギリスではWibble, wobble, wubble, flob
オーストラリアではblep, blah, boop
これには書いてあったけど、どれくらい普及しているのでしょうか。調べたけどよくわからなかった。

spam, ham, eggs……
Pythonで使われているようです。
cheese, beans, toastも見かけました。朝ごはんですね……って、モンティ・パイソンじゃないか!?
Pythonの名前はMonty Pythonに由来することは有名ですが、その中でも最も有名な「Spam」のスケッチにおいて、スパムだらけのメニューが出てくるんですよ。
したがって、それに由来するのではないかと仮説を立て、映像を見て台詞を確認しました。
しかし、ham,cheese, toastは出てきませんでした。なんでや!
この疑問に対する答えは、これが詳しかった


要は、今みたいにYoutubeとかNetflixとかがなかった時代には、昔の映像を見るのは大変で、ちゃんと確認せずなんとなくで使い始めちゃったんだろうということだそうです。なるほどな。
ちなみに、cheeseのなかでgoudaやedamが出てくることがあるのは、Pythonの生みの親がオランダ人だからオランダの代表的なチーズの名前を使ったのではないかと上記リンク先に書かれていました(チューリップも有名だけど毒性があるから食べちゃダメ)。
こちらは、ちゃんと普及していて爆笑でした。


以上、まだまだ掘り起こせばでてきそうなメタ構文変数でした。