プログラミングでちょくちょく出てくるhogehogeとかfooとかbarって一体何なのか?という話

プログラミングについていろいろ情報を調べていると以前はよくhogehogeという語を見かけ、最近だとfooやbarを見かけるようになりました。

文字列の置換を例を上げると
「foo」という語を「bar」に置き換える
みたいな感じで使われてます。

これらはサンプルプログラムの変数名としてよく使われてますね。後はソフトの機能説明とかにも。これらは特に語自体に意味はなく、単に仮の変数名や文字列として当てはめてるだけですよー、みたいな使われ方だと思っていました。

いままではなんとなくそういうものだと思っていただけですが、ふとした拍子に「果たしてこれらは具体的には一体なんなのか?」と気になってしまいました。まぁ取るに足らない疑問ですが、足の裏に付いた米粒みたいなものですかね?取らなくてもいいけど、一度気になってしまうと取らないと気が済まないみたいな。

さて、いざ調べるといってもちゃんとした意味があるんだろうか?と不安でしたが、そこは現代のネット知識の宝庫であるWikipediaに項目が出来てました。 コンピューター用語としてはMetasyntactic variable(メタ構文変数)と呼ばれるようです。
またもっと広い分野においては
と扱われるそうな。日本語だと仮名とか仮称もそういった類いになるのかなと思います。

それにしてもWikipediaの記事を読むとおもしろいですね。プログラミング言語毎の差異について触れていたり、それぞれの語源がどうとかいろいろ書かれています。

まぁざっくりというとメタ構文変数というのは「意味のない名前」 という扱いのようです。

なぜにメタ構文変数などというのを使う必要があるのでしょう?というのを考えてみました。例えば、プログラミングのサンプルプログラムを説明するときに、何気なく変数に「child」と「parent」を使ってしまうと、説明を受ける方からすると「両者の変数に何らかのつながりがあるのでは?」と思われてしまう可能性があります。何気なく使った語が何か意味を持つものと思われてしまうと、余計な誤解を生じるかも知れない。
広く使われている語だと、一々説明せずにもうそういう前提で話を進めていってしまうことはあるでしょう。しかし初学者だったりまったくの畑違いの分野の人にはまったく馴染みがない語だった、なんてこともあり得るかも。

そういった状況を防ぐために、始めから「これは便宜上用いてるだけで特に意味のない名前ですよー」というのを示しておくといいのではと思います。


Amazon メタ思考関連書籍など

コメント

スポンサーリンク


このブログの人気の投稿

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplotでプロットなどの色をcolornameの指定で変更する

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)

Pythonのformat()を使って1桁の16進数でも2桁で出力する方法