Nowy słownik hakera ma bardzo dobry wpis na ten temat – i uważam go za lepsze źródło informacji na tego typu rzeczy niż Wikipedia:
zmienna metasyntaktyczna /n./
Nazwa używana w przykładach i rozumiana jako oznaczająca dowolną rzecz, o której mowa, lub dowolnego przypadkowego członka klasy omawianych spraw. Przykładem kanonicznym jest słowo foo. Aby uniknąć nieporozumień, hakerzy nigdy (no cóż, prawie nigdy) nie używają „foo” ani innych podobnych słów jako trwałych nazw czegokolwiek. W nazwach plików powszechną konwencją jest to, że każda nazwa pliku zaczynająca się od nazwy zmiennej metasyntaktycznej jest plikiem zdrapkowym, który może zostać usunięte w dowolnym momencie.
Do pewnego stopnia lista preferowanych zmiennych metasyntaktycznych jest podpisem kulturowym. Występują zarówno szeregowo (używane dla pokrewnych grup zmiennych lub obiektów), jak i jako pojedyncze. Oto kilka typowych sygnatur:
foo, bar, baz, quux, quuux, quuuux …:
Zastosowanie MIT / Stanford, które można teraz znaleźć wszędzie (głównie dzięki wczesnym wersjom tego leksykonu! ). Na MIT (ale nie w Stanford) baz przestał być używany na jakiś czas w latach siedemdziesiątych i osiemdziesiątych. Powszechna niedawna mutacja tej sekwencji wstawia qux przed quux.
bazola, ztesch:
Stanford (od połowy lat 70-tych).
foo, bar, thud, grunt:
Ta seria była popularna na CMU. Inne zmienne związane z CMU obejmują gorp.
foo, bar, fum:
Według doniesień ta seria jest powszechna w XEROX PARC.
fred, barney:
Zobacz wpis dotyczący freda. Zwykle są to brytyjskiizm.
corge, grault, flarp:
Popularny na Rutgers University i wśród hakerów GOSMACS.
zxc, spqr, wombat:
Cambridge University (Anglia).
shme
Berkeley, GeoWorks, Ingres. Wymawiane / shme / z krótkim / e /.
snorkeling na Brown University, wczesne lata 70.
foo, bar, zot na Politechnice w Helsinkach, Finlandia.
blarg, wibble
Nowa Zelandia.
toto, titi, tata, tutu
Francja.
pippo, pluton, paperino
Włochy. Pippo / pee „po / i Paperino / pa-per-ee” -no / to włoskie nazwy Goofyego i Kaczora Donalda.
aap, noot, mies
Holandia. To pierwsze słowa, których dziecko nauczyło się pisać na holenderskiej tablicy ortograficznej.
Spośród nich tylko „foo” i „bar” są uniwersalne (a baz prawie tak). Związki foobar i `foobaz” również cieszą się bardzo dużą popularnością.
Niektóre terminy żargonowe są również używane jako nazwy metasyntaktyczne, na przykład barf i mumble. Zobacz także Commonwealth Hackish, aby omówić liczne zmienne metasyntaktyczne znalezione w Wielka Brytania i Wspólnota Narodów.
Komentarze
tl; dr
-
„Foo „i” bar „jako zmienne metasyntaktyczne zostały spopularyzowane przez MIT i DEC, pierwsze odniesienia są w pracy nad LISP i PDP-1 oraz Project MAC od 1964 roku.
-
Wiele z tych osób było w klubie Tech Model Railroad Club MIT, gdzie znajdujemy pierwsze udokumentowane użycie „foo” w kręgach technicznych w 1959 r. (i wariant w 1958 r. ).
-
Zarówno „foo”, jak i „bar” (a nawet „baz”) były dobrze znane w kulturze popularnej, zwłaszcza z komiksów Smokey Stover i Pogo, które miały być czytane przez wielu członków TMRC.
-
Wydaje się również, że wojskowy FUBAR przyczynił się do ich popularności.
Użycie samotnego „foo” jako nonsensownego słowa jest dość dobrze udokumentowane w popkulturze na początku XX wieku, podobnie jak w wojskowym FUBAR. (Dodatkowe informacje: FOLDOC FOLDOC Żargonowy plik Plik żargonu Wikipedia RFC3092 )
OK, poszukajmy odniesień.
STOP NACIŚNIJ! Po opublikowaniu tej odpowiedzi odkryłem ten doskonały artykuł o „foo” w piątek 14 stycznia 1938 wydanie The Tech (najstarsza i największa gazeta „MIT” & pierwsza gazeta opublikowana w sieci), tom LVII. Nr 57, cena trzy centy:
O fuizmie
Lounger uważa, że ten biznes Foo-ism został zbyt daleko posunięty przez jego błędnych orędowników i niniejszym i niezwłocznie zajmuje stanowisko przeciwko jego nadużyciom. Może się zdarzyć, że nie ma takiego foo jak stary foo, a my nim jesteśmy, ale tak czy inaczej, foo i jego pieniądze to jakaś impreza. (Głos z trybun – „Nie wygłupiaj się!”)
Oczywiście jako przekleństwo „foo!” Ma w naszym języku określone i prawdopodobnie niezastąpione miejsce, chociaż obawiamy się, że nadmierne używanie, jakim jest obecnie poddawane, może równie dobrze doprowadzić do jego wczesnego (i niestety, mrocznego) zapomnienia. Mówimy niestety, ponieważ właściwe użycie tego słowa może skutkować takimi szczęśliwymi wydarzeniami, jak następujące.
Profesor Slater wygłosił wykład z termodynamiki 8.50 w sali 6-120. Profesor zakrył przednią stronę tablicy, ustawił uchwyt sterujący mechanizmem podnoszącym, obracając się w międzyczasie do klasy, aby kontynuować dyskusję. Przednia tablica powoli, majestatycznie podniosła się, odsłaniając tablicę za nią, a na niej napisano duże symbole pisane jako „FOO”!
Gazeta Tech , rok wcześniej, Letter to the Editor, wrzesień 1937 :
Zanim pociąg dotarł na stację, neofici są tak wypełnieni opowieściami o chwale Phi Omicron Omicron, zwykle nazywanej Foo , że są łatwym łupem.
…
Nie mam nic przeciwko temu, że straciłem moich pierwszych czterech synów na rzecz Wielkiego i Powszechnego Bractwa Phi Omicron Omicron, ale tak życzę, aby mój piąty syn, moje dziecko, został przynajmniej ostrzeżony z wyprzedzeniem.
Miejmy nadzieję, że twoja,
Oburzona Matka Piątki.
I Tech w grudniu 1938 :
Ogólny trend myślenia można najlepiej zinterpretować na podstawie uwag poczynionych pod koniec kart do głosowania. Jeden głos brzmiał: „Nie sądzę, żeby to, co robię, było sprawą Pulvera”, podczas gdy inny po prostu dodał krótkie „Foo”.
Pierwsze udokumentowane „foo” w kręgach technicznych to prawdopodobnie 1959 „s Słownik języka TMRC :
FOO: święta sylaba (FOO MANI PADME HUM); mówić tylko wtedy, gdy jesteś pod natchnieniem, by obcować z Bóstwem.Naszym pierwszym obowiązkiem jest obracanie liczników Foo.
Są one wyjaśnione w FOLDOC . Kompilator słownika, Pete Samson, powiedział w 2005 roku:
Użycie tego słowa w TMRC poprzedza moje przybycie. Licznik foo może po prostu mieć losowo migające światła lub może być prawdziwym licznikiem z niejasnymi danymi wejściowymi.
I od 1996 r. „s Plik żargonu 4.0.0 :
Wcześniejsze wersje tego leksykonu wyprowadzały „baz” jako zniekształcenie bar ze Stanford. Jednak Pete Samson (kompilator leksykonu TMRC) donosi, że był on już aktualny, kiedy dołączył do TMRC w 1958 roku. Mówi: „Pochodzi z„ Pogo ”. Albert Aligator, gdy był zirytowany lub oburzony, krzyczał„ Bazz Fazz! ”Lub „Rowrbazzle!” Układ klubu miał modelować (mityczne) hrabstwa Rowrfolk i Bassex Nowej Anglii (Rowrbazzle połączone z (Norfolk / Suffolk / Middlesex / Essex). ”
Rok przed słownikiem TMRC, 1958 „MIT Voo Doo Gazette (” Humor uzupełnienie MIT Deans „office”) (PDF) wspomina Foocom w „The Laws of Murphy and Finagle” Johna Banzhafa (studenta elektrotechniki):
Dalsze badania w ramach wspólnego grantu Foocom i Anarcom rozszerzyły prawo tak, aby obejmowało wszystkie i miało uniwersalne zastosowanie: jeśli coś może pójść nie tak, będzie!
Również 1964 ” MIT Voo Doo (PDF) odnosi się do użycia TMRC:
Tak! Chcę być natychmiastowym sukcesem i śniegowymi klientami. Wyślij mi dyplom z: …
Ale pamiętajmy, że to pytanie dotyczy przykładów kodu, więc znajdźmy „foo”, „bar” i „foobar” opublikowane w
Tak więc Żargon Plik 4.4.7 mówi o „foobar”:
Prawdopodobnie pierwotnie rozpowszechniane za pośrednictwem podręczników DECsystem firmy Digital Equipment Corporation (DEC) w latach sześćdziesiątych i wczesnych siedemdziesiątych XX wieku; potwierdzone obserwacje pochodzą z 1972 roku.
Pierwsza opublikowana wzmianka, jaką mogę znaleźć, pochodzi z lutego 1964 , ale napisane w czerwcu 1963 r., Język programowania LISP: jego działanie i aplikacje przez Information International, Inc. , z wieloma autorami, ale włączając Timothyego P. Harta i Michaela Levina:
Zatem, ponieważ „FOO” jest nazwą samą w sobie, „COMITRIN” będzie traktuj zarówno „FOO”, jak i „(FOO)” dokładnie w ten sam sposób.
Zawiera również inne zmienne metasyntaktyczne, takie jak: FOO CROCK GLITCH / POOT TOOR / ON YOU / SNAP CRACKLE POP / XYZ
Spodziewam się, że to jest to samo, co następne odniesienie do „foo” z projektu MAC projektu MIT w styczniu 1964 „s AIM-064 lub Ćwiczenia LISP autorstwa Timothyego P. Harta i Michaela Levina:
samochód [((FOO. CROCK). GLITCH)]
Ma wiele innych zmiennych metasyntaktycznych, takich jak: CHI / BOSTON NEW YORK / SPINACH BUTTER STEAK / FOO CROCK GLITCH / POOT TOOP / TOOT TOOT / ISTHISATRIVIAL EXCERCISE / PLOOP FLOT TOP / SNAP CRACKLE POP / JEDEN DWÓCH TRZY / PŁASZCZYZNY SUB PROGNIK
W przypadku „foo” i „bar”, najwcześniejsza wzmianka, jaką udało mi się znaleźć, pochodzi z projektu MAC MIT w czerwcu 1966 „s AIM-098 lub PDP-6 LISP nikt inny niż Peter Samson:
EXPLODE, jak PRIN1, wstawia ukośniki, więc (EXPLODE (QUOTE FOO / BAR)) PRIN1 „s jak (FOO // / BAR) lub PRINC „s as (FOO / BAR).
Jeszcze kilka przypomnień.
@Walter Mitty przypomniał na tej stronie w 2008 roku:
Popieram żargon plik dotyczący Foo Bar. Mogę prześledzić to co najmniej od 1963 roku i numeru seryjnego PDP-1 2, który znajdował się na drugim piętrze budynku 26 na MIT. Użyto tam Foo i Foo Bar, a po 1964 roku w pokoju PDP-6 w projekcie MAC.
John V. Everett wspomina w 1996 roku:
Kiedy dołączyłem do DEC w 1966 roku, foobar był już powszechnie używany jako rzut nazwa pliku nieobecności. Uważam, że fubar stał się foobarem, ponieważ PDP-6 obsługiwał sześć nazw znaków, chociaż zawsze zakładałem, że termin został przeniesiony na DEC z MIT. W tamtych czasach na DEC istniało wiele typów MIT, z których niektórzy pracowali z CTSS 7090/7094.Ponieważ 709x był również maszyną 36-bitową, foobar mógł być tam używany jako popularna nazwa pliku.
Foo i bar były również powszechnie używane jako rozszerzenia plików. Ponieważ edytorzy tekstu w tamtych czasach operowali na pliku wejściowym i tworzyli plik wyjściowy, powszechne było edytowanie z pliku .foo do pliku .bar iz powrotem.
Powszechne było również użyj foo, aby wypełnić bufor podczas edycji za pomocą TECO. Ciąg tekstowy, który dokładnie wypełnił jeden blok dysku, to IFOO $ HXA127GA $$. Prawie wszyscy programiści PDP-6/10, z którymi pracowałem, używali tego samego polecenia.
Daniel PB Smith w 1998 roku:
Dick Gruen miał w swoim pokoju w akademiku urządzenie, typowy zestaw baterii B, rezystorów, kondensatorów i neonów NE-2, które nazwał„ licznikiem foo ”. To byłoby około 1964 roku.
Robert Schuldenfrei w 1996 r .:
Użycie FOO i BAR jako przykładowych nazw zmiennych sięga co najmniej 1964 r. i IBM 7070. To też może być starsze, ale tam po raz pierwszy je zobaczyłem. To było w Assemblerze. Jaki byłby odpowiednik liczby całkowitej FORTRAN? IFOO i IBAR?
Paul M. Wexelblat w 1992 roku:
Najwcześniejszy asembler PDP-1 używał dwóch znaków dla symboli (maszyna 18-bitowa) programiści zawsze zostawiali kilka słów jako miejsce na poprawki, aby rozwiązać problemy. (Skocz do miejsca na patch, zrób nowy kod, skocz z powrotem) To miejsce tradycyjnie nosiło nazwę FU: co oznaczało Fxxx Up, miejsce, w którym naprawiłeś Fxxx Ups. Kiedy mówiono, było znane jako przestrzeń FU. Późniejsze asemblery (np. MIDAS zezwalał na trzy znaczniki znaków, więc FU stało się FOO, i jak WSZYSCY programiści PDP-1 powiedzą ci, że była to przestrzeń FOO.
Bruce B. Reynolds w 1996 r .:
Po stronie IBM FOO (FU) BAR jest użycie strony BAR jako bazowego rejestru adresów; w połowie lat 70. programiści CICS musieli martwić się różnymi xxxBARami … Myślę, że jednym z nich był FRACTBAR …
Oto” prosto IBM „BAR” z 1955 roku.
Inne wczesne odniesienia:
Nie udało mi się znaleźć żadnych odniesień do paska foo jako „odwróconego sygnału foo „jak sugerowano w RFC3092 i gdzie indziej.
Oto kilka nawet wcześniejszych F00, ale myślę, że są one” powtórzeniami zbiegów okoliczności / fałszywych alarmów:
używając słów takich jak „foo” i „bar” sprawi, że skupisz się na koncepcja, a nie to, co możesz pojąć w oparciu o terminy, które znasz. Na przykład:
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"); } }
Powyższy kod pozwala Ci wrócić do swojej wiedzy o rzeczywistych sprawach.
Jeśli próbujesz wyjaśnić koncepcję, w której ważną częścią nie jest to, co się robi (na przykład drukowanie miauczenia lub kory), ale jak to się robi, wtedy usunięcie części, które znasz, pomoże:
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"); } }
Teraz musisz skupić się na tym, co naprawdę się dzieje, nie jesteś już w stanie zgadywać, co się wydarzy.
Tak więc, skrócona wersja jest taka, że foo, bar i tym podobne są używane do podkreślania pojęć, w których treść nie ma tak naprawdę znaczenia, ale pomysł ma.
Komentarze
- ah, prawdziwa odpowiedź!
- Tak, ale dlaczego właśnie Foo i Bar? Dlaczego nie Lorum i Ipsum?
- en.wikipedia.org/wiki/Foo może być dokładne …
- @TofuBeer Tak, one ' re " zmienne metasyntactic ". @masher widzę moją odpowiedź z mnóstwem odniesień do tego, dlaczego Foo i Bar, a nie Lorem i Ipsum. programmers.stackexchange.com/questions/69788/… W rzeczywistości istnieje wiele różnych zmiennych metasyntaktycznych, które mają był używany przez lata i w różnych miejscach.