2011-02-01 21 views
32

¿De dónde vinieron y cuándo se usaron por primera vez?¿Cuál es el origen de foo y bar?

+6

si (foo) {getFood(); } else if (barra) {goToBar(); } else {baz? } – Moses

+2

Duplicado: http://programmers.stackexchange.com/questions/221/whats-the-origin-of-foo-and-bar –

Respuesta

62

tl; dr

  • "Foo" y "barra" como variables metasintácticas fueron popularizados por el MIT y DEC, las primeras referencias están en el trabajo en LISP y PDP-1 y el Proyecto MAC a partir de 1964.

  • Muchas de estas personas se encontraban en el Tech Model Railroad Club del MIT, donde encontramos el primer uso documentado de "foo" en círculos tecnológicos en 1959 (y una variante en 1958).

  • Tanto "foo" como "bar" (e incluso "baz") eran bien conocidos en la cultura popular, especialmente en los cómics Smokey Stover y Pogo, que muchos miembros de TMRC han leído.

  • Además, parece probable que el FUBAR militar haya contribuido a su popularidad.


El uso de solitario "foo" como una palabra sin sentido está bastante bien documentado en la cultura popular a principios del siglo 20, como es el FUBAR militar. (Algunos lectura de fondo: FOLDOC FOLDOC Jargon File Jargon File Wikipedia RFC3092)


bien, así que vamos a encontrar algunas referencias.

STOP PRESS! Después de la publicación de esta respuesta, descubrí este artículo perfecto de "foo" en el viernes 14 de enero 1938 edición de The Tech ("más antiguo y más grande periódico & el primer periódico del MIT publicado en la web"), LVII volumen. No. 57, Precio: Tres Centavos

En Foo-ismo

la tumbona piensa que este negocio de Foo-ismo se ha llevado demasiado lejos por sus proponentes equivocadas, y por este medio y en el acto tomar su apoyo contra su abuso. Puede ser que no haya foo como un viejo foo, y lo somos, pero de todos modos, un foo y su dinero son una fiesta. (Voz desde las gradas- "¡No seas tonto!")

Como un improperio, por supuesto, "¡foo!" tiene una posición definida y probablemente irreemplazable en nuestro idioma, aunque tememos que el uso excesivo al que está actualmente sometida pueda dar lugar a que caiga en un olvido temprano (y, por desgracia, oscuro). Decimos lamentablemente porque el uso correcto de la palabra puede dar como resultado incidentes tan felices como los siguientes.

Fue una conferencia de termodinámica de 8.50 del profesor Slater en la sala 6-120. El profesor, después de haber cubierto la parte frontal de la pizarra, puso la manija que opera el mecanismo de elevación, girando entre tanto a la clase para continuar su discusión. La placa frontal lentamente, majestuosamente, se alzó, dejando al descubierto la tabla que había detrás de ella, y en esa placa, en letra grande, ¡los símbolos que deletreaban "FOO"!

The Tech newspaper, un año antes, la Carta al Editor, Septiembre :

En el momento en que el tren ha llegado a la estación de los neófitos están tan llenos de las historias de la gloria de Phi Omicron Omicron, generalmente conocido como Foo, que son presa fácil.

...

No es que me importe habiendo perdido mis primeros cuatro hijos a la Hermandad y Gran Universal de Phi Omicron Omicron, pero me hubiera gustado que mi quinto hijo, mi bebé, al menos debería ser advertido de antemano.

Con suerte la tuya,

Indignado madre de cinco hijos.

Y The Tech en diciembre de 1938 :

tendencia general del pensamiento podría ser mejor interpretado desde las observaciones hechas al final de las papeletas. Un voto dijo: "No creo que lo que hago sea asunto de Pulver", mientras que otro simplemente agregó un breve "Foo".


El primero documentado "foo" en los círculos tecnológicos es probablemente 's Dictionary of the TMRC Language:

FOO: la sílaba sagrada (FOO MANI PADME); ser hablado solo cuando está bajo inspiración para estar en comunión con la Deidad. Nuestra primera obligación es mantener los contadores Foo encendidos.

Estas se explican en FOLDOC. El compilador del diccionario Pete Samson dijo en 2005:

El uso de esta palabra en TMRC es anterior a mi llegada allí. Un contador foo podría simplemente tener luces intermitentes aleatorias, o podría ser un contador real con una entrada oscura.

Y a partir de 1996 de Jargon File 4.0.0:

Las versiones anteriores de este léxico derivado 'baz' como una corrupción de Stanford de la barra. Sin embargo, Pete Samson (compilador del léxico de TMRC) informa que ya estaba al corriente cuando se unió al TMRC en 1958. Él dice "Proviene de" Pogo ". Albert el Cocodrilo, cuando se irritaba o indignaba, gritaba" ¡Bazz Fazz! " o '¡Rowrbazzle!' Se dijo que el diseño del club modeló los (míticos) condados de Nueva Inglaterra de Rowrfolk y Bassex (Rowrbazzle se mezcló con (Norfolk/Suffolk/Middlesex/Essex)."

Un año antes de que el diccionario TMRC, 's MIT Voo Doo Gaceta ("El humor suplemento del MIT Decanos oficina") (PDF) menciona Foocom, en "Las Leyes de Murphy y Finagle" por John Banzhaf (un estudiante de ingeniería eléctrica):

investigación adicional gracias a una subvención conjunta Foocom y Anarcom amplió el derecho a tener un alcance global y universalmente aplicable: Si algo puede salir mal, saldrá mal

también 1964 MIT Voo Doo (PDF) referencias al uso TMRC 's:

Sí! Quiero ser un éxito instantáneo y nevar clientes. Envíame un grado en: ...

  • Foo Contadores

  • Foo Jung


Vamos a ver "foo", "bar" y "foobar "publicado en ejemplos de código.

Así, Jargon File 4.4.7 dice de "foobar":

Probablemente propagado inicialmente a través de manuales DECsystem por Digital Equipment Corporation (DEC) en la década de 1960 y principios de 1970; confirmados avistamientos no se remontan a 1972.

La primera referencia publicada puedo encontrar es de febrero 1964 , pero escrito en 1963 junio The Programming Language LISP: its Operation and Applications por Information International, Inc., con muchos autores, pero incluyendo Timoteo P Hart y Michael Levin:

Por lo tanto, dado que "FOO" es un nombre por sí mismo, "COMITRIN" tratará tanto a "FOO" como a "(FOO)" exactamente de la misma manera.

incluye también otras variables metasintácticas como: FOO CÁNTARO Glitch/POOT TOOR/Encendido/SNAP CRACKLE POP/XYZ

espero que esto es lo mismo que la siguiente referencia de "foo" de MIT proyecto MAC en enero de 1964 's AIM-064, o LISP Exercises por Timothy P. Hart y Michael Levin:.

coche [((FOO CÁNTARO).GLITCH)]

Comparte muchas otras variables metasintácticas como: CHI/BOSTON NUEVA YORK/ESPINACA MANTEQUILLA FILETE/FOO CÁNTARO Glitch/POOT toop/sonar sonar/ISTHISATRIVIALEXCERCISE/PLOOP FLOT TOP/SNAP CRACKLE POP/UNO DOS TRES/Sub plano TRILLADORA

por tanto "foo" y "bar" en conjunto, la primera referencia que pude encontrar es de Proyecto del MIT MAC en junio 's AIM-098, o PDP-6 LISP por nada menos que Peter Samson:

EXPLODE, como PRIN1, en inserta barras oblicuas, entonces (EXPLODE (QUOTE FOO/BAR)) PRIN1 es como (F O O ///B A R) o PRINC es como (F O O/B A R).


Algunos más recallations.

recordó en este sitio en 2008:

Secundo el archivo de la jerga respecto Foo Bar. Puedo rastrearlo al menos hasta 1963, y el número de serie PDP-1 2, que estaba en el segundo piso del Edificio 26 en el MIT. Foo y Foo Bar fueron utilizados allí, y después de 1964 en la sala PDP-6 en el proyecto MAC.

John V. Everett recuerda en 1996:

Cuando me uní DEC 1966, foobar ya estaba siendo utilizado comúnmente como un nombre de archivo de usar y tirar. Creo que fubar se volvió foobar porque el PDP-6 soportaba seis nombres de caracteres, aunque siempre asumí que el término migraba a DEC desde el MIT. Había muchos tipos de MIT en DEC en aquellos días, algunos de los cuales habían trabajado con el CTSS 7090/7094. Dado que el 709x también era una máquina de 36 bits, foobar puede haber sido utilizado como un nombre de archivo común allí.

Foo y la barra también se utilizan comúnmente como extensiones de archivo. Como los editores de texto del día operaban en un archivo de entrada y producían un archivo de salida, era común editar desde un archivo .foo a un archivo .bar, y viceversa.

También era común usar foo para llenar un búfer al editar con TECO. La cadena de texto para completar exactamente un bloque de disco fue IFOO $ HXA127GA $$. Casi todos los programadores PDP-6/10 con los que trabajé usaban esta misma cadena de comandos.

Daniel P. B. Smith en 1998:

Dick Gruen tenían un dispositivo en su dormitorio, el conjunto usual de B-batería, resistencias, condensadores, y NE-2 tubos de neón, que calificó de " foo counter ". Esto habría sido alrededor de 1964 más o menos.

Robert Schuldenfrei en 1996:

El uso de FOO y BAR como ejemplo los nombres de variables se remonta al menos a 1964 y el IBM 7070. Esto también puede ser mayor, pero que es donde vi por primera vez eso. Esto fue en ensamblador. ¿Cuál sería el equivalente entero de FORTRAN? IFOO e IBAR?

Paul M. Wexelblat en 1992:

El primer PDP-1 ensamblador utilizan dos caracteres para los símbolos (máquina de 18 bits) programadores siempre dejaron algunas palabras como espacio de parche para corregir problemas. (Salta al espacio del parche, crea un nuevo código, salta hacia atrás) Ese espacio se llamaba FU: que significaba Fxxx Up, el lugar donde arreglaste Fxxx Ups. Cuando se hablaba, se conocía como espacio FU. Más tarde ensambladores (por ejemplo MIDAS permitió tres etiquetas de char de modo FU se convirtió en FOO, y como todos los programadores PDP-1 le dirá que era el espacio FOO

Bruce B. Reynolds en 1996:.

En el lado de IBM FOO (FU) BAR es el uso de la barra lateral como dirección base Registro; en el medio de 1970 programadores CICS tenían que preocuparse a cabo las diversas xxxBARs ... creo que uno de ellos fue FRACTBAR ...

Aquí es una recta IBM "BAR" de 1955.


Otras referencias tempranas:


I no han podido encontrar ninguna referencia a foo bar como "señal foo invertida" como se sugiere en RFC3092 y en otros lugares.

Éstos son algunos de F00s incluso anteriores, pero creo que son coincidencias/falsos positivos:

+15

¡Guau! ¡Esa es una respuesta ** completa **! –

5
+4

A veces preguntas simples como estas obtienen un número ridículo de votos ascendentes. –

+1

Para responder a su pregunta: casi siempre comienzo yendo a Ask My Question y luego escribo mi pregunta y miro la lista generada automáticamente de posibles duplicados. Funciona muy bien. Por lo general, ya he buscado en Google ... pero no siempre. Esta vez miré el artículo de variables metasintácticas (que no tenía una sección de historial) que encontré en uno de los "posibles duplicados": [Cuando foo y bar no son suficientes] (http://stackoverflow.com/questions/424580). OK, entonces soy flojo. –

+0

¿Y sin embargo, de alguna manera logró no encontrar el archivo Jargon? Cuando busqué en Google su asunto, encontré un artículo en Programmers.stackexchange.com que enlazaba y citaba el archivo Jargon. –

Cuestiones relacionadas