它们来自哪里,何时首次使用?
2 回答
tl;博士
“Foo”和“bar”作为元句法变量被 MIT 和 DEC 推广,第一个参考文献从 1964 年开始在 LISP 和 PDP-1 和 Project MAC 上工作。
这些人中的许多人都在麻省理工学院的技术模型铁路俱乐部,在那里我们发现了 1959 年技术界首次使用“foo”(以及 1958 年的变体)。
“foo”和“bar”(甚至“baz”)都在流行文化中广为人知,尤其是在 Smokey Stover 和 Pogo 漫画中,许多 TMRC 成员都会阅读这些漫画。
此外,军用 FUBAR 似乎也促成了它们的流行。
在 20 世纪初的流行文化中,使用单独的“foo”作为一个无意义的词有很好的记录,军事 FUBAR 也是如此。(一些背景阅读: FOLDOC FOLDOC Jargon File Jargon File Wikipedia RFC3092)
好的,让我们找到一些参考资料。
停止新闻!发布此答案后,我在1938年 1 月 14 日星期五版的The Tech(“麻省理工学院最古老、最大的报纸和在网络上发表的第一份报纸”)第 LVII 卷中发现了这篇关于“foo”的完美文章。57号,价格三分钱:
论富主义
The Lounger 认为 Foo 主义的这项业务被其误导的支持者做得太过分了,并在此立即采取立场反对其滥用。可能没有像老 foo 这样的 foo,我们就是这样,但无论如何,一个 foo 和他的钱是一些聚会。(看台上的声音——“别傻了!”)
当然,作为脏话,“foo!” 在我们的语言中具有明确且可能不可替代的地位,尽管我们担心它目前受到的过度使用很可能会导致它过早地(而且,唉,黑暗的)遗忘。我们说唉,因为正确使用这个词可能会导致以下这样的快乐事件。
这是 Slater 教授在 6-120 室进行的 8.50 热力学讲座。教授盖住了黑板的正面,将操纵升降机构的把手放在一边,同时转向全班继续他的讨论。前板缓缓而庄严地抬起,露出后面的板,在那个板上,写着“FOO”的符号!
科技报纸,一年前,致编辑的信,1937 年9 月:
当火车到达车站时,新手们已经充满了关于 Phi Omicron Omicron(通常被称为 Foo)的荣耀的故事,以至于他们很容易成为猎物。
...
我不介意将我的前四个儿子丢给 Phi Omicron Omicron 的大世界兄弟会,但我确实希望我的第五个儿子,我的孩子,至少应该提前得到警告。
希望你的,
愤怒的五个孩子的母亲。
1938年12月的科技:
从投票结束时的评论中可以最好地解释总体思想趋势。一张选票说,“我不认为我所做的与 Pulver 有任何关系”,而另一张选票只是简单地添加了一个简短的“Foo”。
科技界第一个记录在案的“foo”可能是1959 年的TMRC 语言词典:
FOO:神圣音节(FOO MANI PADME HUM);只有在受到灵感与神交流时才能说出来。我们的首要任务是保持 Foo 计数器转动。
这些在FOLDOC中进行了解释。字典的编译器皮特·萨姆森在 2005 年说:
在 TMRC 使用这个词比我来那里早。一个 foo 计数器可能只是随机闪烁的灯,或者可能是一个带有模糊输入的真实计数器。
从 1996 年的行话文件 4.0.0开始:
该词典的早期版本将“baz”派生为斯坦福的 bar 腐败。然而,Pete Samson(TMRC 词典的编译器)报告说,当他在 1958 年加入 TMRC 时,它已经是最新的了。他说“它来自“Pogo”。鳄鱼阿尔伯特,当被激怒或愤怒时,会大喊“Bazz Fazz!” 或“Rowrbazzle!” 据说俱乐部的布局模仿了(神话中的)新英格兰县 Rowrfolk 和 Bassex(Rowrbazzle 与(诺福克/萨福克/米德尔塞克斯/埃塞克斯)混合在一起。”
早于 TMRC 词典,1958 年的 MIT Voo Doo Gazette(“麻省理工学院院长办公室的幽默补充”)(PDF)在 John Banzhaf(电气工程专业学生)的“墨菲和 Finagle 法则”中提到了 Foocom :
在 Foocom 和 Anarcom 的联合资助下进行的进一步研究将法律扩展为无所不包且普遍适用:如果有任何问题,它就会出现!
1964 年的 MIT Voo Doo (PDF)也引用了 TMRC 用法:
是的!我想成为一个立竿见影的雪上客户。给我一个学位:...
Foo 计数器
符正
让我们找到代码示例中发布的“foo”、“bar”和“foobar”。
因此,行话文件 4.4.7提到“foobar”:
可能最初是由 Digital Equipment Corporation (DEC) 在 1960 年代和 1970 年代初期通过 DEC 系统手册传播的;确认的目击事件可以追溯到 1972 年。
我能找到的第一个出版参考是1964 年2 月,但写于 1963 年 6 月,The Programming Language LISP: its Operation and Applications by Information International, Inc.,作者有很多,但包括 Timothy P. Hart 和 Michael Levin:
因此,由于“FOO”是其自身的名称,“COMITRIN”将以完全相同的方式对待“FOO”和“(FOO)”。
还包括其他元句法变量,例如:FOO CROCK GLITCH / POOT TOOR / ON YOU / SNAP CRACKLE POP / XYZ
我预计这与 MIT 的 Project MAC 在1964年 1 月的 AIM-064 或Timothy P. Hart 和 Michael Levin 的LISP 练习中的“foo”的下一个引用大致相同:
汽车[((FOO . CROCK) . GLITCH)]
它共享许多其他元句法变量,例如:CHI / BOSTON NEW YORK / SPINACH BUTTER STEAK / FOO CROCK GLITCH / POOT TOOP / TOOT TOOT / ISTHISATRIVIALEXCERCISE / PLOOP FLOT TOP / SNAP CRACKLE POP / 一二三 / PLANE SUB THRESHER
对于“foo”和“bar”,我能找到的最早参考资料来自 MIT 的 Project MAC 在1966年 6 月的 AIM-098,或者是 Peter Samson 的PDP-6 LISP :
EXPLODE 和 PRIN1 一样,插入斜线,所以 (EXPLODE (QUOTE FOO/BAR)) PRIN1 的为 (FOO // / BAR) 或 PRINC 的为 (FOO / BAR)。
还有一些回忆。
@Walter Mitty 2008 年在这个网站上回忆道:
我支持有关 Foo Bar 的行话文件。我至少可以追溯到 1963 年,PDP-1 序列号 2,它位于麻省理工学院 26 号楼的二楼。Foo 和 Foo Bar 在那里使用过,1964 年之后在 MAC 项目的 PDP-6 房间使用。
John V. Everett在 1996 年回忆道:
当我在 1966 年加入 DEC 时,foobar 已经被普遍用作一次性文件名。我相信 fubar 变成 foobar 是因为 PDP-6 支持六个字符名称,尽管我一直认为该术语是从 MIT 迁移到 DEC 的。当时 DEC 有许多 MIT 类型,其中一些曾使用 7090/7094 CTSS。由于 709x 也是 36 位机器,因此 foobar 可能已被用作那里的通用文件名。
Foo 和 bar 也常用作文件扩展名。由于当时的文本编辑器对输入文件进行操作并生成输出文件,因此通常从 .foo 文件编辑到 .bar 文件,然后再编辑回来。
在使用东元进行编辑时,使用 foo 填充缓冲区也很常见。精确填充一个磁盘块的文本字符串是 IFOO$HXA127GA$$。几乎所有与我一起工作的 PDP-6/10 程序员都使用相同的命令字符串。
丹尼尔 PB 史密斯在 1998 年:
迪克·格鲁恩 (Dick Gruen) 在他的宿舍里有一个设备,通常是 B 电池、电阻器、电容器和 NE-2 霓虹灯管的组合,他称之为“foo counter”。这将是大约 1964 年左右。
罗伯特舒尔登弗雷在 1996 年:
使用 FOO 和 BAR 作为示例变量名称至少可以追溯到 1964 年和 IBM 7070。这也可能更旧,但那是我第一次看到它的地方。这是在汇编程序中。FORTRAN 整数等价物是多少?IFOO 和 IBAR?
Paul M. Wexelblat在 1992 年:
最早的 PDP-1 汇编器使用两个字符作为符号(18 位机器)程序员总是留下几个字作为补丁空间来解决问题。(跳到补丁空间,做新代码,跳回来)那个空间通常被命名为FU:代表Fxxx Up,你修复Fxxx Ups的地方。说话时,它被称为FU空间。后来的汇编器(例如 MIDAS 允许三个字符标签,所以 FU 变成了 FOO,并且所有 PDP-1 程序员都会告诉你那是 FOO 空间。
布鲁斯·B·雷诺兹在 1996 年:
在 FOO(FU)BAR 的 IBM 端是使用 BAR 端作为基地址寄存器;在 1970 年代中期,CICS 程序员不得不担心各种 xxxBAR……我认为其中之一就是 FRACTBAR……
这是 1955 年的直接IBM“BAR”。
其他早期参考:
正如 RFC3092 和其他地方所建议的那样,我无法找到任何对 foo bar 的引用作为“反向 foo 信号”。
以下是一些更早的 F00,但我认为它们是巧合/误报: