Metasyntactic variable

From Wikipedia, the free encyclopedia


A metasyntactic variable (IPA pronunciation: [ˈmɛ.tə.sɪn.ˌtæk.tɪk ˈvæ.ɹi.ə.bl]) is a placeholder name used in syntax or algorithm specifications to show the places where content can vary.

The same concept is employed in other fields where it is expressed by terms such as schematic variable (see logical form).

Hackers have often been very playful in their choice of placeholders.

Contents

[edit] Examples

[edit] Nonsense words

[edit] Foo, bar, and baz

Foo is the canonical metasyntactic variable, commonly used to represent an as-yet-unspecified term, value, process, function, destination or event but seldom a person (see Ned Baker). It might also be an abbreviation for "File Or Object". It is sometimes combined with bar to make foobar. This suggests that foo may have originated with the World War II slang term fubar, as an acronym for fucked/fouled/"fixed" up beyond all recognition/repair, although the Jargon File makes a reasonably good case [1] that foo predates fubar. Foo was also used as a nonsense word in the surrealistic comic strip Smokey Stover that was popular in the 1940s and 1950s. See also Foo fighter and Foo was here for more foo etymology, as well as RFC 3092.

The popularity of "foo" and its derivatives with computer programmers and hackers was likely increased by its appearance in the classic 1976 Colossal Cave Adventure, found on almost every mainframe and mini-computer through the 1970's and 80's, where the graffiti "fee fie foe foo [sic]" is seen in the Giants' Cave. See xyzzy below for another example of the game's influence.

Another usage of foo is as an abbreviation of the phrase "forward observation officer" (or observer). Apparently FOOs used to go places well forward of normal troops in battle and leave a stylised chalk graffiti of a person looking over a wall with the words "foo was here". (See also: The American version "Kilroy was here.")

The term "Kung foo" (from Kung Fu) has come to mean skill in computer programming. This is actually used (though misspelled) in the movie The Core. This usage itself has spawned variants, such as the GIMP's "Script-Fu" plugin. It is also used to refer to specialized skill regarding a certain programming language or tool, as in "sed fu".

"Foo" can now also just be short for "fool", though its usage as an IT variable predates the ebonic "foo" becoming mainstream.

Bar, the canonical second metasyntactic variable, typically follows foo.

Baz, the canonical third metasyntactic variable, is commonly used after foo and bar. It is also a common Arabic surname, and appears (occasionally in the United Kingdom, more frequently in Australia) as a short form of the forename Barry.

Foo, bar, and baz are often compounded together to make such words as foobar, barbaz, and foobaz.

[edit] Gazonk

Gazonk is often used as an alternative for baz or as a third metasyntactic variable. Some early versions of the popular editor Emacs used gazonk.foo as a default filename.

[edit] bop

bop is often used as a fourth metasyntactic variable. It has the benefit of being short and easy to remember.

[edit] Quux

Quux, introduced by Guy L. Steele, Jr., is the canonical fourth metasyntactic variable, commonly used after baz. However, more recently Qux has become more common as the fourth variable, displacing Quux as the fifth. A probable reason for this is that Quux is often followed by the series Quuux, Quuuux, Quuuuux etc. and Qux fits this pattern perfectly.

In amateur radio, "QUX" means "What is the magnetic course to you?".

[edit] xyzzy

The word xyzzy is a "magic word" from the Colossal Cave Adventure, and therefore is often used as a metasyntactic variable, especially by old-school hackers. It turns up occasionally in other contexts, such as being the cheat code for Minesweeper on many versions of Microsoft Windows [2]. Its origin has been hypothesized[3] to be it's usefulness as a shortcut for programmers/mathematicians to remember the cross product formula. (Ax = By*Cz - Bz*Cy, see [[4]])

[edit] Shme

Shme is infrequently used in various environments such as Berkeley, Narvik, Trondheim, GeoWorks, Ingres, Quovadx, Documentum. Pronounced /ʃmɛ/.

[edit] Zxc

The use of zxc is likely due to the arrangement of the standard QWERTY keyboard, on which Z, X, and C are the first three keys (from left to right) on the bottom row of letters. According to the Jargon File, use of this name can be found at Cambridge University.

[edit] XPTO

The use of XPTO is probably related to an old abbreviation of "Christ" (which in uppercase Greek is ΧΡΙΣΤΟΣ), but its origins have since been lost. It is a very usual variable name for something still unknown but likely good, at least in Portuguese-speaking countries.

[edit] RFC 3092

RFC 3092, published on April Fools' Day of 2001, lists the "standard list of metasyntactic variables" as follows: foo, bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud.

[edit] Arfle, barfle, gloop

Used by those with a BBC Micro background. Originated as the response of the parser of a BBC Micro adventure game to input it didn't understand. [5] An example of its use can be seen in this gcc bug report, along with other interesting metasyntactic variables.

[edit] Fee, Fi, Fo, Fum

Sometimes also used as metasyntactic variables (similarly to Foo, Bar, Baz standard sequence). Originally come from English fairy tale Jack and the Beanstalk, as told by Joseph Jacobs (1860/1898) [6]. The sequence "fee", "fie", "foe", "foo" (sic) was also present in the Infocom game, Zork.

[edit] English words

[edit] Spam, ham, and eggs

Spam, ham, and eggs are the canonical metasyntactic variables used in the Python programming language. This is a reference to the famous comedy sketch, Spam by Monty Python, the namesake of the language.

[edit] Needle and haystack

Needle and haystack are commonly used in computer programming to describe the syntax of functions that involve a search parameter and a search target, such as searching a substring within a string; with these two words, derived from the idiom "to find a needle in a haystack", it is clearer where the substring for which to search goes, and where the string in which to search goes. This can be seen, for instance, in the documentation for some functions in the computer language PHP; see [7] for an example.

[edit] Wibble

First recorded in the 1840's alongside wobble, wibble rose to prominence after it was used as a nonsense word in the Roger Irrelevant cartoon strip in UK adult comic Viz in the 1980s and later used in an episode of Blackadder Goes Forth in 1989. The term is also used as a synonym for chatter and other contentless remarks, and (rarely) as a way of pronouncing "www"

In recent years, the term has come to mean to cry in such a way as to seem adorable, especially when one unwillingly instigates pity for oneself in the act of crying, and is often found when used in reference to fictional characters. This instance primarily occurs in the form of Internet slang, as it appears in Web forums and on blog sites, but may also be used in face-to-face conversation among peers as well.

Another usage of the word online is attributed to Dr. Samuel Ramsden, and is a term of random oddity, or a non sequitur, and briefly became an obsession on Star Trek roleplaying games.

[edit] Other examples

Other words used as metasyntactic variables include: beekeeper, bing, blarg, bleh, blort, corge, doit, dothestuff, garply, glarb, glarch, grault, hoge, kalaa, kuku, mum, puppu, stuff, smoo, sub, temp, test, thud, var, waldo, momo.

Plugh, like xyzzy, is a "magic word" from the Colossal Cave Adventure. Similarly, blort is the name of a magic potion in Zork.

The term blah is often used because of its use as a placeholder term in common English speech. For example, here is how one might describe casually how to write a letter in colloquial English: "You write 'Dear so-and-so, blah, blah, blah, Sincerely, your name.'"

Standard English uses the word whatever as a metasyntactic word. It is one of the few that is actually in the dictionary as such, similar to wherever, however, and whenever. Despite being in the dictionary, whatever rarely makes the lists of metasyntactic variables. Using foo for many audiences would require explanation, but using whatever is readily accepted.

[edit] Numbers

[edit] 17

Long described at MIT as 'the most random number'.[citation needed]

[edit] 23

The number 23 is also commonly used as an integer example—particularly when the connotations associated with 42 are undesirable. This number is noted as important in the Principia Discordia due to its relation to The Law of Fives, and is further popularized in the Illuminatus! Trilogy by Robert Anton Wilson and Robert Shea. It also makes frequent appearances in the novels of Robert Rankin, and to some extent may be regarded as 'Rankin's 42'.

[edit] 37

37 is often selected by people asked to choose a number between 10 and 50, in which the two digits are not equal.[citation needed] Consequently it is frequently chosen as a supposedly "random" number. The number also features prominently in the movie "Clerks".

[edit] 42

The number 42 is often a common initializer for integer variables, and acts in the same vein as a "metasyntactic value". It is taken from Douglas Adams' The Hitchhiker's Guide to the Galaxy, where Deep Thought concluded that it was "the answer," ultimately The Answer to Life, the Universe, and Everything.

[edit] 47

The number 47 is sometimes used instead of 42 above, and is used mainly by members of the 47 society, Chief Delphi members, Pomona College graduates, or New Trek fans.

[edit] 69

69 is often used as an example number. Popular among hackers as an addition to metasyntactic variables (foo69, bar69), also used in all sorts of hacks. 69 is popular because of its reference to a sexual position. It is also notable because it is the largest number whose factorial can be calculated by a pocket calculator limited to standard scientific notation with a 2 digit exponent.

[edit] 105

105 is sometimes used in conjunction with 69 due to the observation that 105 base 8 equals 69 in decimal, and 69 base 16 equals 105 in decimal.

[edit] 666

666 is the Number of the Beast, and often refers to something considered bad or evil.

[edit] 0815

0815 (named after the repetitive and boring MG 08/15-training) is used in German as either a random number or to reflect something mainstream, normal or boring.

[edit] OU812

OU812 ("Oh, you ate one too") is the name of an album by Van Halen, and is often used for its amusing phonetic properties as well as the fact that it contains both letters and numbers, useful for testing alphanumeric fields.

[edit] 1337

1337 stands for leet, in Leetspeak; because of this positive (or ironic) connotation, it is commonly used. Shortened form of 31337, "eleet" (elite).

[edit] 1701

1701 is often used by Star Trek fan programmers, because of its reference to the Starship Enterprise.

[edit] 4711

4711 is most commonly used in German computer speak as a random member of a set. It is a brand of Eau de Cologne, originally named after the number of the manufacturer's house in Cologne.

[edit] 48879

48879 is commonly used as a hexadecimal number where it is represented as "BEEF". It often follows 57005 to form the hexadecimal phrase "DEAD BEEF".

[edit] 49374

49374 is commonly used as a hexadecimal number where it is represented as "C0DE". It often follows 57005 to form the hexadecimal phrase "DEAD C0DE"; together these numbers are used in places to indicate source code that no longer works or is no longer used.

[edit] 57005

57005 is commonly used as a hexadecimal number where it is represented as "DEAD".

[edit] 61453

61453 is commonly used as a hexadecimal number where it is represented as "F00D". It often follows 47789 to form the hexadecimal phrase "BAAD F00D".

[edit] 715517

715517 is used in Finnish computer speak as a boobs (tissit).

[edit] 12648430

12648430 is commonly used as a hexadecimal number where it is represented as "C0FFEE".

[edit] Names of people

[edit] J. Random and Ned Baker

J. Random and Ned Baker are the names of archetypal users; compare to "The Joneses". J. Random Hacker and J. Random User are also common.

[edit] Alice and Bob

Alice and Bob are names of the archetypal individuals used as examples in discussions of cryptographic protocols. Others include:

  • Carol - a participant in three- and four-party protocols
  • Dave - a participant in four-party protocols
  • Ellen - a participant in five- and six-party protocols
  • Frank - a participant in six-party protocols, and so on
  • Eve or Oscar - an (evil) eavesdropper
  • Mallory or Mallet - a malicious active attacker
  • Trent - a trusted arbitrator
  • Walter - a warden
  • Peggy - a prover
  • Victor - a verifier
  • Sam - a trusted server (Uncle Sam)
  • Charlie - a challenger or opponent
  • Trudy - an intruder or malicious entity

Bob, Alice and Carol may have come from the 1969 movie Bob & Carol & Ted & Alice, or from the fact that they are common English names starting with A, B and C, the first letters of the alphabet. Dave, Ellen, and Frank are the next three letters. Some people continue this pattern, using Gloria or another similar term for the seventh participant, and so on (maintaining the pattern female, male, female, male...).

[edit] Fred and Barney

After the characters in the cartoon series The Flintstones. The most famous use of these is the example code in Learning Perl. Fred is also known to have been used simply because the keys are close together on the QWERTY keyboard.

[edit] Mary Sue

Mary Sue is the derogatory name assigned by critics to any fictional character (male or female) who is heavily idealized, to the point of being an obvious ego representation of the author. Frequently used to describe characters appearing in fan fiction written by enthusiastic but unskilled authors.

[edit] Romeo and Juliet

JIDs like romeo@montague.net and juliet@capulet.com/balcony are often used in Jabber enhancement proposals in the same way as Alice and Bob.

[edit] Military names

Some names are most commonly used in military context.

  • Private Snuffy
  • LCpl Benotz specific to the USMC
  • Susie Rottencrotch or Jane Rottencrotch; from the movie Full Metal Jacket
  • GI Joe or GI Jane
  • Beetle Bailey from the comic strip of the same name
  • Gomer Pyle or Private Pyle; from the television show of the same name, also popularized by the movie Full Metal Jacket
  • Tommy Atkins, origin of the name "Tommy" for a British soldier
  • Private Bloggins, used primarily within the Canadian Forces as an arbitrary person, much like John Smith.
  • Private Bag O. Doughnuts, example service member found in some USMC instructional materials.
  • Private N. Nönnönnöö (initials N.N.), example name used in training in the Finnish Defence Forces.

[edit] Other names

Sometimes placeholders from other contexts will be used: John Doe, Jane Roe, Richard Roe, A. N. Other, Frick and Frack, John Q. Public, Joe Blow, Bloggs or Joe Bloggs (or occasionally, Fred Bloggs), Joe Soap, Joe Bagadonuts, Joe Sixpack, Joe Schmo, J. Random Hacker, and Tom, Dick and Harry. In some law schools, the generic case name Push v. Pull is used as a variable. Law or accounting firms are sometimes referred to with names like Dewey, Cheatem, and Howe ("Do we cheat 'em? And how!"), and, in at least one case, Solitary, Poor, Nasty, Brutish, and Short. Other nonsense names come from swapping initials, e.g. J. Pennings (Peter Jennings).

[edit] Companies

Yoyodyne and Acme are frequently used.

[edit] Place names

[edit] Smallville and Metropolis

Smallville and Metropolis are fictional places from the Superman series of comic books. These are used to contrast rural and urban characteristics.

[edit] Anywhere, Anytown and Nowhere

Anywhere, USA or Anytown, USA connotes genericness. Nowhere sometimes suggests that the entry is invalid.

[edit] Bakalakadaka St

A derisive term used to connote a place far away where incomprehensible language is spoken and inscrutable actions occur. Used in a similar context in the movie Team America: World Police and in few, if any, other contexts.

[edit] Ballybackanowhere

Used in Northern Ireland to denote a small town in the middle of the countryside of no particular significance. The 'Bally' prefix comes from the high incidence in usage in town names throughout Ireland, and comes from the Irish 'Baile', meaning home or town. Similar names include Backobeyond (pronounced back oh beyond) and Backarseanowhere (pronounced back arse of nowhere)

[edit] Ballygobackwards

Used in Ireland as a disparaging remark usually aimed at a particular town which is perceived as being antiquated or old-fashioned.

[edit] Beyond The Black Stump

Old Australian term for a far-off place

[edit] Bumfuck/Bumblefuck/Buttfuck/BFE

Widely used to denote a backward, inbred community. Sometimes "West Bumfuck, Arkansas". The former term is also British slang for anal sex. Sometimes also referred to as "Bum(ble)fuck, Egypt" or B.F.E.

Also used to describe a location of extreme remoteness or that is difficult to access. "Bumblefuck, Nowhere".

[edit] East Jesus

Another name for a remote, rural or backward small town. The religious reference might imply a town with conservative or religious values or might simply be used for its mildly blasphemous humor.

[edit] Jerkwater Town

Yet another name for a remote, rural or backward small town.

One theory of the term's origin is in the late 19th century from when steam powered trains needed to refill their water tanks regularly. The trains did not stop at extremely small towns where only people were boarding. Instead they slowed down so that riders could hop on and off. Since the tanks still needed to be refilled, barrels of water were "jerked" aboard from platforms as the train passed. [8]

There is also a possible etymological relationship with the term "jerk" when applied to a person to indicate that they are dull or stupid.

[edit] Middle of Nowhere

Sometimes colloquially known as In the Sticks, In the Boonies, East Buttfuck, East Boofu, Back of Bourke Unlike Nowhere; these metasyntactic variables indicate extreme remoteness and suggest contempt.

[edit] Plumnelly

Another term for a remote location, Plumnelly is often used in the context of a border between two states or other areas: "plum out of Georgia and nelly out of Alabama." It can also be expressed as "plum out of town and nelly out of this world" to suggest that the location is so remote it has almost left the map entirely.

[edit] Podunk University

This term is sometimes a placeholder for a generic university.

[edit] Y.U. Bum University

This term is sometimes a placeholder for a less generic university. Pronounced like "Why you bum, you."

[edit] University of Poppleton

This term is used in the United Kingdom as a place holder for a generic university. It is taken from a column written by Laurie Taylor in the Times Higher Education Supplement. The Higher Education Funding Council for England has a permanent test university for testing computer applications called the Poppleton University of Testing.

[edit] Waikikamukau

Traditional New Zealand placeholder for a small rural town. A plausible looking Māori place name, but which would be pronounced "Why kick a moo-cow?".

[edit] Wassamatta U.

Sometimes used for any university. Almost never used with more than "U." to represent "university". Less common than Y.U Bum U., or others. Used in the Rocky & Bullwinkle cartoon series. Out loud, it sounds like "what's the matter [with] you" spoken with a strong Italian accent.

[edit] Images

Test cards have been used as standard test images, as has Lenna.

[edit] Other languages

Other languages sometimes have their own metasyntactic variables. For example:

  • Afrikaans: Dingus for things (also used in colloquial South African English).
  • Arabic: Fulan and Ellan for a person's name. Katha/Kaza and Matha/Maza for things.
  • Bulgarian: eди какво for things (pronounced E-di kakVO), Горно Нанадолнище pronounced GOR-no na-na-DOL-ni-shte is comparable to the English Middle of Nowhere, Магадански институт for a university (popularized by a TV show)
  • Czech: pom (short of pomocná proměnná meaning auxiliary variable)
  • Danish: flaf, giraf, boing, bla
  • Dutch: aap, noot, mies, Piet, Jan, Kees
  • English (Australian): duvelacky can be used for widget
  • Estonian: plah, kala (fish; also used in the meaning of "bug"), kalatehas (fish factory), oxe (misspelling of okse, meaning "vomit")
  • Filipino: kwan and ano (objects, sometimes locations), Pedro and Maria (people)
  • Finnish: huu, haa, hahaa, hihii, hohoo
  • French: toto, tata, titi, tutu, truc, machin, bidon,bidule
    • in Belgium: brol, prout
  • German: muh, bla, blubb, schlurps, schnurz, dings (variants dingens, dingsbums), gedöhnsrad, Hinz & Kunz, jedermann (variants Lieschen Müller, Otto Normalverbraucher, Hans Wurst, Max Muster, Erika Mustermann)
  • Greek: koko, lala, malakia (coarse slang)
    • Used by the Kangaroo Compiler Group: liroulirou
  • Hebrew: Ploni (פלוני) or Ploni Almoni (פלוני אלמוני) as a person's name (see Ruth 4:1); Avraham (אברהם), Yzhak (יצחק) & Yahakov (Jacob, יעקב) for 3 family related males, after the 3 fathers; Israel Israelli (ישראל ישראלי) for a random citizen. 7 as a one digit number (maybe due to biblical reference. A known usage is in a HaGashash HaHiver comedy show מה כמה? מה 7). End of the world, left (סוף העולם שמאלה) as remote place.
  • Hindi: Phalaan Phalaan
  • Hungarian: Gipsz Jakab; alma, körte, barack; lófasz (crude: "horse penis")
  • Indonesian: Anu, Fulan
  • Italian: pippo, pluto, paperino or tizio, caio, sempronio
    • in Switzerland: Maria Bernasconi
  • Japanese: hoge, hogehoge, moge, fuga, piyo, chomechome, nyoronyoro, naninani
  • Malayalam: Appappan, mayav,Piley,purushu
  • Marathi: amuk, tamuk
  • Norwegian: nalle
  • Polish: ala ma kota, tygrysy są w paski, blabla, ble, cokolwiek (anything), jakieś bzdury (some nonsense), Jan Kowalski, Jan Nowak (most popular names in Poland), dupa (ass)
  • Portuguese: bla, nha, la, patati, patata, coisa, treco, troço, negócio, Trem, Fulano, Sicrano and Beltrano (the last three as placeholders for persons' names), José da Silva (pretty common person name), lixo (means "trash", for temporary or to be discarded variables)
  • Romanian: bubu, mumu, zeze
  • Russian: Vasya Pupkin, Private Pupkin (Вася Пупкин, рядовой Пупкин), meaning abstract person, but generally a soldier or a programmer, Asya Pupkina (Ася Пупкина) - the female counterpart of Vasya, Mukhosransk, Mukhodrishchensk, Bobruisk (Мухосранск, Муходрищенск, Бобруйск) - a town in deep province, Derevnya Gadyukino (Деревня Гадюкино) - a village in the middle of nowhere, shtuka, shtukovina - an object, hrenovina - an object with a feature or an abstraction of a feature, for example: the problem is caused by a hrenovina that connects this shtukovina with another one,
  • Spanish: fulano, mengano, zutano (the three used to denote a supposed or fictional person), sultano (variant of the previously mentioned "zutano"), pedro, juan, diego (very common names), pepe (Jose), pp (phonetic equivalent to "pepe"), "kk" (phonetic equivalent to "caca"-shit), vaina, (vulgar), weá (Chilean vulgarism), cosa (thing; in Spanish, "cosa" can be anything, but usually refers to some physical object), pirola (has no meaning) pirolita (literally, "small pirola"; has no meaning)
  • Swedish: apa (the Swedish word for monkey), bepa, cepa, depa, flepa (alphabetical generalizations of apa); bla, blahuj, bulle, ugg, ugga, blargh, gunk, tjo, bork; Kalle, Olle, Pelle, Nisse (the diminutives of Karl, Olof, Per and Nils respectively)
  • Tamil: Kuppuswamy, Ramaswamy, Kuppan, Subban, Pulli Raja, Mannar & Company, All-in-all Azhagu Raja, Nadu theru Narayanan
  • Thai: Tasii Tasaa (ตาสี ตาสา) innocent peoples. From the common name of country grand father, often forward with Yaima Yaimii (ยายมา ยายมี) for a grand mother's name.
  • Turkish: filan, hede, hödö, zıvır, ıvır, ali, veli, deli, hasan - hüseyin
  • Urdu: zaid name is used for examples.
  • Yiddish: Plony (for a person, see Hebrew above); peh, meh, shmeh for "yadda yadda"; Chaim Yankel for a person's name

It may also be interesting to note that lazy programmers who run out of nonsense words simply append numbers when they need more variables.

[edit] See also

[edit] References

    [edit] External links