Metasyntactic variable
A
metasyntactic variable is either a
placeholder name (a kind of
alias term, commonly used to denote the subject matter under discussion), or a random member of a class of things under discussion. The term originates from
computer programming and other technical contexts, and is commonly used in examples by
hackers and
programmers. The use of a metasyntactic variable is helpful in freeing a programmer from creating a logically named
variable, although the invented term may also become sufficiently popular and enter the language as a
neologism. The word
foo is the
canonical example (it is known as the
canonical metasyntactical variable).
The
phenomenon is similar to the use in
algebra of
x,
y and
z for unknown
variables, and
a,
b and
c for unknown
constants. "
Widgets" are also used in business to indicate an as-yet-unspecified product and are frequently sold by the
Acme company.
Metasyntactic variables are so called because:#They are variables in the
metalanguage used to talk about
programs, etc. (see also
pseudocode); #They are variables whose values are often variables (as in usages like "the value of
f(foo, bar) is the sum of foo and bar").
Nonsense words
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, below). 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 for more
foo etymology, as well as RFC 3092.
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.
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.
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.
Interestingly, in
amateur radio, "QUX" means "What is the magnetic course to you?".
Bat
Bat is used by some programmers as an alternative to
quuux.
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].
Shme
Shme is infrequently used in various environments such as Berkeley,
GeoWorks, Ingres, Quovadx. Pronounced /shmeh/ with a short /e/.
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.
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.
Arfle, barfle, gloop
Used by those from a
BBC Micro background. Originated as the response of the parser of a BBC Micro
adventure game to input it didn't understand. [
3] An example of its use can be seen in this
gcc bug report, along with other interesting metasyntactic variables.
English words
Spam and Eggs
Spam and
eggs are the canonical metasyntactic variables used in the
Python programming language. This is a reference to a
famous comedy sketch by
Monty Python, after which the language is named.
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 [
4] for an example.
Wibble
First recorded in the 1840s 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"
Other examples
Other words used as metasyntactic variables include:
beekeeper,
bing,
blarg,
bleh,
blort,
corge,
doit,
dothestuff,
garply,
glarb,
glarch,
grault,
hoge,
kalaa,
mum,
puppu,
stuff,
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.
Numbers
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.
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 to Life, the Universe, and Everything.
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.
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 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.
666
666 is the
Number of the Beast, and often refers to something considered bad or evil.
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.
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.
1337
1337 stands for
leet, in
Leetspeak; because of this positive (or ironic) connotation, it is commonly used.
1701
1701 is often used by
Star Trek fan programmers, because of its reference to the
Starship Enterprise.
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.
48879
48879 is commonly used as a
hexadecimal number where it is represented as "BEEF". It often follows 57005 to form the hexidecimal phrase "
DEAD BEEF".
49374
49374 is commonly used as a hexadecimal number where it is represented as "C0DE". It often follows 57005 to form the hexidecimal phrase "DEAD C0DE"; together these numbers are used in places to indicate source code that no longer works or is no longer used.
57005
57005 is commonly used as a hexadecimal number where it is represented as "DEAD".
12648430
12648430 is commonly used as a hexadecimal number where it is represented as "C0FFEE".
Names of people
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.
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
arbitratorWalter - 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...).
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.
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
BobMilitary names
Some names are most commonly used in military context.
Private SnuffyLCpl Benotz specific to the
USMCSusie Rottencrotch or
Jane Rottencrotch; from the movie
Full Metal JacketGI Joe or
GI JaneBeetle 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 JacketTommy 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.
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,
Bloggs or
Joe Bloggs (or occasionaly,
Fred Bloggs),
Joe Soap 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!") Other nonsense names come from swapping initials, e.g.
J. Pennings (Peter Jennings).
Place names
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.
Anywhere, Anytown and Nowhere
Anywhere, USA or Anytown, USA connotes genericness. Nowhere sometimes suggests that the entry is invalid.
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)
Ballygobackwards
Used in
Ireland as a disparaging remark usually aimed at a particular town which is perceived as being antiquated or old-fashioned.
Bumfuck/Bumblefuck/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 "Bumblefuck,
Egypt" or B.F.E.
Also used to describe a location of extreme remoteness or that is difficult to access. "Bumblefuck Nowhere"
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.
Jerkwater Town
Yet another name for a remote, rural or backward small town.
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.
This is also a possible etemology for the term "jerk" when applied to a person to indicate that they are dull or stupid.
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.
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.
Podunk University
This term is sometimes a placeholder for a generic university.
Y.U. Bum University
This term is sometimes a placeholder for a less generic university. Pronounced like "Why you bum, you."
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 permenent test university for testing computer applications called the Poppleton University of Testing.
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?".
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.
Images
Test cards have been used as
standard test images, as has
Lenna.
Other
languages sometimes have their own metasyntactic variables. For example:
*
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)
*
Chinese:
Jia,
Yi,
Bing,
Ding*
Danish:
flaf,
giraf,
boing*
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**in Belgium:
brol,
prout*
German:
muh,
bla,
blubb,
schlurps,
schnurz,
dingens,
gedöhnsrad,
Lieschen Mueller,
Hinz & Kunz,
Otto Normalverbraucher,
Hans Wurst,
Max Muster,
Erika Mustermann*
Greek:
koko,
lala,
malakia**Used by the Kangaroo Compiler Group:
liroulirou*
Hebrew:
Ploni (פלוני) or
Ploni Almoni (פלוני אלמוני) as a person's name (see
Ruth 4:1);
Reuven (ראובן),
Shim'on (שמעון),
Levi (לוי), etc. for multiple people (after
Jacob's sons)
*
Hindi:
Phalaan Phalaan*
Hungarian:
Gipsz Jakab;
alma,
körte,
barack,
lófasz*
Indonesian:
Anu,
Fulan*
Italian:
pippo,
pluto,
paperino**in Switzerland:
Maria Bernasconi*
Japanese:
hoge,
hogehoge,
moge,
fuga,
piyo,
chomechome,
nyoronyoro,
naninani*
Malayalam:
Appappan,
mayav,
Piley,
purushu*
Norwegian:
nalle*
Polish:
ala ma kota,
ala ma psa,
ala ma kota, a kot ma pchły,
tygrysy są w paski,
bla,
ble,
cokolwiek (anything),
jakieś bzdury (some crap), Jan Kowalski (most popular surname in poland), Jan Nowak (as above), dupa (ass), kupa (shit)
*
Portuguese:
bla,
nha,
la,
patati,
patata,
coisa,
treco,
troço,
negócio,
Fulano,
Sicrano and
Beltrano (the last three as placeholders for persons' names),
José da Silva(pretty common person name)
*
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,
Muchosransk (Мухосранск) - a town in deep province,
Derevnya Gadyukino ("еревня "адюкино) - a village in the middle of nowhere
*
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"),
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 (alphabetical generalizations of
apa);
bla,
blahuj,
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*
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;
Chaim Yankel for a person's nameIt may also be interesting to note that lazy programmers who run out of nonsense words simply append numbers when they need more variables.
*
Placeholder name (Kadigan)
*
Free variables and bound variables*
gadget*
widget*
Hello World*
Lorem Ipsum*
Fnord*
Alice and Bob*
The Jargon File entry on Foo, and also the entry on
Commonwealth Hackish for non-US English words such as "wombat".
*RFC 3092 - The
IETF memo on Foo (note that this is an
April Fool's Day RFC memo)
*
Acme A Perl module providing metasyntactic variable names. Updated weekly.
*
The Foo Bar in Worcester, MA near
WPI. Website does not explain name.