回答
Foo と bar は、米陸軍の第二次世界大戦の頭字語FUBAR、「F-ed Up BeyondAllRecognition」に由来します。これらの用語の家族全員が、北アフリカとシチリアのキャンペーン(1942-43)の間に広く使われるようになりました。リック・アトキンソンの優れた戦闘の日:シシリーとイタリアの戦争、1943-1944 は、これらのリストを示しています。たとえば、JANFUは「合同軍」です。 ハスキー作戦 の侵攻艦隊が撃墜された1943年7月11日の事件などの「海軍Fアップ」 23陸軍空軍C-47輸送機が空挺部隊を乗せて海岸堡を補強します。
更新:ウィキペディアには関連するリストがあります。アトキンソンによってリストされた元の第二次世界大戦のものを含む頭字語。
プログラマーなら誰でも、変数に名前を付けるために foo と bar を使用する動機を理解するでしょう。当初からC / UNIX文化の一部であり、@ Walter Mittyが指摘しているように、それよりも古いものでした。
更新(2009年10月5日):ここにアトキンソンの説明があります:
彼らの蔓延する「市民性」は、彼らを武道の熱意に警戒させました。「私たちは岬と南西に満ちたロマンチックではありませんでした。オード・トワドル」と、シチリア島に向かった海軍予備役中尉のジョン・メイソン・ブラウンは書いた。 「最後の戦争はそれには近すぎた。」軍事生活は彼らの皮肉な感性と彼らの懐疑論を燃え上がらせた。兵士の期待の低下を捉えた単一の粗雑な頭字語-SNAFU、「状況は正常、すべてがめちゃくちゃ」-はGI皮肉の語源に拡大しました:SUSFU(状況は変わらず、まだめちゃくちゃです); FUMTU(もっとめちゃくちゃです)いつもより); JANFU(合同陸海軍の性交); JAAFU(合同英米の性交); FUAFUP(性交して適切に性交);そしてFUBAR(すべての認識を超えて性交)[Atkinson、p。 36]。
更新(2011年11月23日):@ Hugoには素晴らしいリストがあります非軍事的先行詞。
コメント
回答
これはfubarの音声発音だと思います。
これは次の略です:
コメント
回答
新しいハッカーの辞書これについては非常に優れたエントリがあります。これは、Wikipediaよりもこの種のリソースとして優れていると思います。
メタ構文変数/n./
例で使用され、議論されているもの、または議論されているもののクラスのランダムなメンバーを表すと理解されている名前。 fooという単語は標準的な例です。混乱を避けるために、ハッカーは「foo」などの単語を永続的な名前として使用することは決してありません。ファイル名では、メタ構文変数名で始まるファイル名はスクラッチファイルである可能性があります。いつでも削除できます。
ある程度、好ましいメタ構文変数のリストは文化的な署名です。それらは、直列(変数またはオブジェクトの関連グループに使用)とシングルトンの両方で発生します。いくつかの一般的な署名は次のとおりです。
foo、bar、baz、quux、quuux、quuuux …:
MIT / Stanfordの使用法は、今ではどこにでもあります(このレキシコンの初期バージョンのおかげです! )。 MIT(スタンフォードではない)では、1970年代と「80年代にbazがしばらく使用されなくなりました。このシーケンスの最近の一般的な突然変異により、quuxの前にquxが挿入されます。
bazola、ztesch:
スタンフォード(70年代半ば以降)。
foo、bar、thud、grunt:
このシリーズはCMUで人気がありました。他のCMU関連変数にはgorpが含まれます。
foo、bar、fum:
このシリーズは、XEROXPARCで一般的であると報告されています。
フレッド、バーニー:
フレッドのエントリを参照してください。これらは英国主義である傾向があります。
corge、grault、flarp:
ラトガーズ大学やGOSMACSハッカーの間で人気があります。
zxc、spqr、wombat:
ケンブリッジ大学(イギリス)。
shme
Berkeley、GeoWorks、Ingres。 / shme /と発音します。/e/は短くなります。
snork
ブラウン大学、1970年代初頭。
foo、bar、zot
ヘルシンキ工科大学、フィンランド。
blarg、wibble
ニュージーランド。
toto、titi、tata、tutu
フランス。
pippo、pluto、paperino
イタリア。 Pippo / pee “po /およびPaperino / pa-per-ee” -no /は、グーフィーとドナルドダックのイタリア語の名前です。
aap、noot、mies
オランダ。これらは、子供がオランダ語のスペルボードでスペルを学ぶために使用した最初の単語です。
これらすべての中で、「foo」と「bar」だけが普遍的です(そしてbazはほぼそうです)。複合語foobarと `foobaz”も非常に広い通貨を楽しんでいます。
一部の専門用語はメタ構文名としても使用されます。たとえば、barfとmumbleです。Greatにある多数のメタ構文変数の説明については、CommonwealthHackishも参照してください。英国と連邦。
コメント
回答
ウィキペディアでは、メタ構文変数のこの定義を示しています:
コンピューターサイエンスでは、プログラマーはメタ構文変数を使用して、議論中の主題またはの任意のメンバーを示すために一般的に使用されるプレースホルダー名またはエイリアス用語を記述します。議論されているもののクラス。メタ構文変数の使用は、プログラマーが論理的に名前が付けられた変数を作成することから解放するのに役立ちます。これは、アルゴリズムの例を作成または教えるときに役立つことがよくあります。 fooという単語が主な例です。
「メタ構文変数」という用語は、主に非公式の文献に見られます。メタ変数の同義語としても使用されることがあります。
言語の規則に違反しない記号または単語は、メタ構文変数として使用できますが、意味のない単語が一般的に使用されます。同じ概念は、概略変数などの用語で表される他の分野でも採用されています(論理形式を参照)。
数学的類推:メタ構文変数は、代数文字が数値の変数として使用されるのと同じように、他の単語の変数である単語です。
この記事では、そのような一般的な例も示しています。さまざまなプログラミング言語の変数:
C
次のCプログラミング言語の例では、関数名fooと変数名barは両方ともメタ構文変数です。 //で始まる行はコメントです。
// The function named foo int foo(void) { // Declare the variable bar and set the value to 1 int bar = 1; return bar; }
Python
スパム、ハム、エッグは、Pythonプログラミング言語で使用される主要なメタ構文変数です。 。[5]これは、言語の代名詞であるモンティパイソンによる有名なコメディスケッチであるスパムへの参照です。[6]次の例では、spam、ham、eggsはメタ構文変数であり、#で始まる行はコメントです。
# Define a function named spam def spam(): # define the variable ham ham = "Hello World!" #define the variable eggs eggs = 1 return
ルビー
次の例baz、foo、barはメタ構文変数であり、#で始まる行はコメントです。
# Declare the variable foo and set equal to 1 foo = 1 # Declare the variable bar and set equal to 2 bar = 2 # Declare the method (function) named baz, which prints the text "Hello world" def baz puts "Hello world" end
回答
ウィキペディアの回答は次のとおりです:
foobar、fooという用語、bar、およびbazは、コンピュータープログラミングまたはコンピューター関連のドキュメントで使用される一般的なプレースホルダー名(メタ構文変数とも呼ばれます)です。通常、不明な値の目的が次のようなシナリオを説明するときに、不明な値を表すために使用されます。理解されていますが、それらの正確な値は任意で重要ではありません。これらの用語は、複雑なシステムの任意の部分を表すために使用できます。データ、変数、関数、コマンドを含むemまたはアイデア。単語自体はこの使用法では意味がなく、xとyの文字が代数で使用されているように、単なる論理表現です。 Foobarはしばしば単独で使用されます。 foo、bar、bazは通常、複数のエンティティが必要な場合にこの順序で使用されます。
Fooは造語として英語を入力しており、多くの人がメタ構文変数の標準的な例と見なしています。 [要出典]コンピュータプログラミングの例(「一度だけ」と表現されることもあります)や擬似コードで広く使用されています。エリックS.レイモンドはそれを「重要なハッカー主義」と呼んでいます。[1]
http://en.wikipedia.org/wiki/Foo
およびRFC3092から:
使用時「bar」に関連して、それは一般に第二次世界大戦時代の陸軍スラングの頭字語FUBAR( “Fucked Up Beyond All Repair”)にさかのぼり、後にfoobarに変更されました。専門用語ファイル[JARGON]の初期のバージョンでは、この変更を戦後のボウドラー化と解釈していましたが、FUBAR自体がドイツの「furchtbar」(ひどい)の影響を受けた「foo」の派生語であった可能性が高くなっています。実際には元の形式でした。
「foo」という単語自体は、漫画や漫画で戦前の歴史を持っていたようです。 1938年にロバート・クランペットが監督したワーナー・ブラザースの漫画「ダフィー・ドク」では、ダフィー・ダックの非常に初期のバージョンが「SILENCE ISFOO!」という看板を掲げています…(snip)
http://www.faqs.org/rfcs/rfc3092.html
コメント
回答
tl; dr
-
“Fooメタ構文変数としての「」と「bar」はMITとDECによって普及し、最初の参照は1964年以降LISPとPDP-1およびProjectMACで機能しています。
-
これらの人々の多くはMITのテックモデル鉄道クラブにいました。そこでは、1959年にテックサークルで「foo」の最初の文書化された使用法が見つかりました(1958年の変種) 。
-
「foo」と「bar」(さらには「baz」)は、人気のある文化、特にスモーキーストーバーとポゴのコミックでよく知られていました。多くのTMRCメンバーが読んでいます。
-
また、軍のFUBARが彼らの人気に貢献したようです。
意味のない単語としての孤独な「foo」の使用は、軍のFUBARと同様に、20世紀初頭の人気のある文化でかなりよく文書化されています。(いくつかの背景資料: FOLDOC FOLDOC ジャーゴンファイル ジャーゴンファイル ウィキペディア RFC3092 )
OK、それではいくつかの参照を見つけましょう。
STOP PRESS!この回答を投稿した後、1月14日金曜日の 1938 版の
The Tech ( “MIT”で最も古く、最大の新聞&ウェブ上で最初に発行された新聞 “)、第LVII巻。 No. 57、価格3セント:
フーイズムについて
ラウンジャーは、フーイズムのこのビジネスはその見当違いの支持者によって行き過ぎて、そしてこれによってそしてすぐにその虐待に対して彼の立場を取ります。古いfooのようなfooはないかもしれません、そして私たちはそれです、しかしとにかく、fooと彼のお金は何らかのパーティーです。 (観覧席からの声-「ばかげてはいけません!」)
もちろん、「foo!」は、私たちの言語では明確で、おそらくかけがえのない位置を占めていますが、それを恐れています。現在受けている過度の使用は、初期の(そして、悲しいかな、暗い)忘却に陥る可能性があります。この言葉を適切に使用すると、次のような幸せな事件が発生する可能性があるため、残念ながら言います。
スレーター教授による6-120号室での8.50熱力学の講義でした。黒板の前面を覆った教授は、リフト機構を操作するハンドルをセットし、その間クラスに向きを変えて議論を続けました。フロントボードはゆっくりと堂々と持ち上げられ、後ろのボードが現れ、そのボードには「FOO」と綴られたシンボルが大きく書かれていました!
Tech新聞、1年前、編集者への手紙、9月 1937 :
列車が駅に到着するまでに、新生児は通常フーと呼ばれるファイオミクロンオミクロンの栄光の物語でいっぱいになります。 、彼らは簡単な獲物です。
…
最初の4人の息子をファイオミクロンオミクロンのグランドアンドユニバーサルブラザーフッドに失ったことを気にすることはありませんが、私はそうします私の5番目の息子である私の赤ちゃんが少なくとも事前に警告されていることを願っています。
うまくいけばあなたの
憤慨している5人の母。
そして 12月の技術 1938 :
一般的な考え方は、投票の最後に行われた発言から最もよく解釈される可能性があります。ある投票では、「私がしていることは、パルバーのビジネスのいずれかだとは思わない」と述べたが、別の投票では、単に「フー」を追加しただけだった。
技術界で最初に文書化された「foo」は、おそらく 1959 “s TMRC言語の辞書:
FOO:神聖な音節(FOO MANI PADME HUM);神と交わるためのインスピレーションの下でのみ話されます。私たちの最初の義務は、FooCountersを回転させ続けることです。
これらは、 FOLDOC aで説明されています。 >。辞書のコンパイラであるPeteSamsonは、2005年に次のように述べています。
TMRCでこの単語を使用すると、そこに来る前になります。fooカウンターでは、ランダムにライトが点滅するだけです。 、または入力があいまいな実際のカウンターである可能性があります。
そして1996年から専門用語ファイル4.0.0 :
このレキシコンの以前のバージョンでは、スタンフォード大学のバーの破損として「baz」が派生していました。しかし、ピート・サムソン(TMRCレキシコンの編集者)は、1958年にTMRCに参加したとき、それはすでに最新のものであったと報告しています。彼は「それは「ポゴ」から来ました。 「Rowrbazzle!」クラブのレイアウトは、(神話上の)ニューイングランドのRowrfolk郡とBassex郡をモデル化したと言われています(Rowrbazzleは(Norfolk / Suffolk / Middlesex / Essexと混ざり合っています)。 “
TMRC辞書の1年前、 1958 のMITVoo Doo Gazette( “Humor suplement of the MIT Deans “office”)(PDF)は、ジョン・バンザフ(電気工学の学生)による「マーフィーとフィナグルの法則」でFoocomについて言及しています。
FoocomとAnarcomの共同助成金の下でのさらなる研究により、法律はすべて受け入れられ、普遍的に適用できるようになりました。何かがうまくいかない場合は、そうなるでしょう!
また 1964 のMITVoo Doo (PDF)は、TMRCの使用法を参照しています:
はい!私はすぐに成功し、雪の顧客になりたいです。学位を送ってください:…
ただし、この質問はコード例に関するものであることを忘れないでください。で公開されている「foo」、「bar」、「foobar」を見つけましょう。コード。
つまり、専門用語ファイル4.4.7 は「foobar」について次のように述べています。
おそらく、1960年代から1970年代初頭に、Digital Equipment Corporation(DEC)によってDECsystemのマニュアルを通じて最初に広められました。そこで確認された目撃情報は1972年にさかのぼります。
最初に公開された参照は、1964年2月のものです ですが、1963年6月に書かれたプログラミング言語LISP:その操作とアプリケーション by Information International、Inc。 、多くの著者がいますが、Timothy P.HartとMichaelLevinを含みます:
したがって、「FOO」はそれ自体の名前であるため、「COMITRIN」は「FOO」と「(FOO)」の両方をまったく同じように扱います。
次のような他のメタ構文変数も含まれます:FOO CROCK GLITCH / POOT TOOR / ON YOU / SNAP CRACKLE POP / XYZ
これは、1月のMITのプロジェクトMACからの「foo」の次の参照とほぼ同じだと思います 1964 のAIM-064、またはTimothy P.HartとMichaelLevinによる LISP演習:
car [((FOO。廃人)。 GLITCH)]
CHI / BOSTON NEW YORK / SPINACH BUTTER STEAK / FOO CROCK GLITCH / POOT TOOP / TOOT TOOT /のような他の多くのメタ構文変数を共有します。 ISTHISATRIVIALEXCERCISE / PLOOP FLOT TOP / SNAP CRACKLE POP / ONE TWO THREE / PLANE SUB THRESHER
「foo」と「bar」の両方について、私が見つけた最初の参照は、6月のMITのプロジェクトMACからのものです。 1966 のAIM-098、または PDP-6 LISP Peter Samsonに他なりません:
EXPLODEは、PRIN1と同様にスラッシュを挿入するため、(EXPLODE(QUOTE FOO / BAR))PRIN1 “は(FOO // / BAR)またはPRINC “s as(FOO / BAR)。
さらにいくつかのリコール。
@Walter Mitty は2008年にこのサイトでリコールしました:
私は2番目の用語ですFooBarに関するファイル。少なくとも1963年、MITの26号館の2階にあったPDP-1シリアル番号2までさかのぼることができます。そこではFooとFooBarが使用され、1964年以降はプロジェクトMACのPDP-6ルームで使用されました。
John V. Everett は1996年に回想します:
1966年にDECに参加したとき、foobarはすでにスローとして一般的に使用されていました-アウェイファイル名。 PDP-6が6文字の名前をサポートしていたため、fubarがfoobarになったと思いますが、この用語はMITからDECに移行されたと常に想定していました。当時、DECには多くのMITタイプがあり、そのうちのいくつかは7090 / 7094CTSSで作業していました。709xも36ビットマシンであったため、そこではfoobarが一般的なファイル名として使用されていた可能性があります。
Fooとbarもファイル拡張子として一般的に使用されていました。当時のテキストエディタは入力ファイルを操作して出力ファイルを作成していたため、.fooファイルから.barファイルに編集したり、元に戻したりするのが一般的でした。
TECOで編集する場合は、fooを使用してバッファを埋めます。 1つのディスクブロックを正確に埋めるためのテキスト文字列はIFOO $ HXA127GA $$でした。私が一緒に働いたほとんどすべてのPDP-6 / 10プログラマーは、これと同じコマンド文字列を使用していました。
1998年のダニエルPBスミス:
Dick Gruenは、彼の寮の部屋に、Bバッテリー、抵抗器、コンデンサー、およびNE-2ネオン管の通常の集合体であるデバイスを持っていました。これを「fooカウンター」と呼びました。これは1964年頃だったでしょう。
1996年のRobertSchuldenfrei :
変数名の例としてのFOOとBARの使用は、少なくとも1964年とIBM 7070にまでさかのぼります。これも古いかもしれませんが、私が最初に見たのはここです。これはアセンブラーにありました。 FORTRAN整数に相当するものは何ですか? IFOOとIBAR?
1992年のPaulM。Wexelblat :
初期のPDP-1アセンブラーは、シンボルに2文字を使用していました(18ビットマシン)プログラマーは、問題を修正するためのパッチスペースとして常に数語を残していました。 (スペースにパッチを適用し、新しいコードを実行し、ジャンプバックします)そのスペースは従来FUと呼ばれていました。これはFxxxUpを修正した場所であるFxxxUpの略です。話されたとき、それはFUスペースとして知られていました。後のアセンブラー(たとえば、MIDASは3つのcharタグを許可したため、FUはFOOになり、すべてのPDP-1プログラマーはそれがFOOスペースであると言うでしょう。
1996年のブルースB.レイノルズ:
FOO(FU)BARのIBM側BAR側をベースアドレスレジスタとして使用することです。1970年代半ば、CICSプログラマはさまざまなxxxBARについて心配する必要がありました…そのうちの1つはFRACTBARだったと思います…
ここに” sa Straight 1955年のIBM “BAR” 。
その他の初期の参考資料:
「反転したfooシグナル」としてfoobarへの参照を見つけることができませんでした”RFC3092や他の場所で提案されているように。
これは以前のF00のいくつかですが、”偶然/誤検知です:
「foo」や「bar」などの単語を使用すると、あなたが知っている用語に基づいてあなたが把握できるものではなく、概念。例:
public abstract class Animal { public abstract void speak(); } public class Cat extends Animal { public abstract void speak() { System.out.println("meow"); } } public class Dog extends Animal { public abstract void speak() { System.out.println("bark"); } }
上記のコードを使用すると、現実世界の知識に頼ることができます。
重要な部分が行われていることではなく(たとえば、ニャーや樹皮を印刷する)、それがどのように行われているのかという概念を説明しようとしている場合は、使い慣れた部分を削除すると役立ちます。
public abstract class Foo { public abstract void star(); } public class Bar extends Foo { public abstract void star() { System.out.println("A"); } } public class Car extends Foo { public abstract void star() { System.out.println("b"); } }
これで、実際に何が起こっているかに焦点を当てる必要があり、何が起こるかを推測できなくなりました。
つまり、短いバージョンでは、fooやbarなどを使用して、コンテンツは重要ではないがアイデアは重要であるという概念を強調します。
コメント