Bat (metasyntactic Variable)
   HOME

TheInfoList



OR:

A metasyntactic variable is a specific word or set of words identified as a
placeholder Placeholder may refer to: Language * Placeholder name, a term or terms referring to something or somebody whose name is not known or, in that particular context, is not significant or relevant. * Filler text, text generated to fill space or provi ...
in computer science and specifically computer programming. These words are commonly found in source code and are intended to be modified or substituted before real-world usage. The words foo and bar are good examples as they are used in over 330 Internet Engineering Task Force Requests for Comments, the documents which define foundational internet technologies like HTTP (web), TCP/IP, and email
protocol Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
s. By mathematical
analogy Analogy (from Greek ''analogia'', "proportion", from ''ana-'' "upon, according to" lso "against", "anew"+ ''logos'' "ratio" lso "word, speech, reckoning" is a cognitive process of transferring information or meaning from a particular subject ( ...
, a metasyntactic variable is a word that is a
variable Variable may refer to: * Variable (computer science), a symbolic name associated with a value and whose associated value may be changed * Variable (mathematics), a symbol that represents a quantity in a mathematical expression, as used in many ...
for other words, just as in algebra letters are used as variables for numbers. Metasyntactic variables are used to name entities such as variables, functions, and commands whose exact identity is unimportant and serve only to demonstrate a concept, which is useful for teaching programming.


Common metasyntactic variables

Due to English being the foundation-language, or
lingua franca A lingua franca (; ; for plurals see ), also known as a bridge language, common language, trade language, auxiliary language, vehicular language, or link language, is a language systematically used to make communication possible between groups ...
, of most computer programming languages, these variables are commonly seen even in programs and examples of programs written for other spoken-language audiences. The typical names may depend however on the subculture that has developed around a given programming language.


General usage

Metasyntactic variables used commonly across all programming languages include ''
foobar The terms foobar (), foo, bar, baz, and others are used as metasyntactic variables and placeholder names in computer programming or computer-related documentation. - Etymology of "Foo" They have been used to name entities such as variables, fu ...
'', ''foo'', ''bar'', ''baz'', ', ', ', ', ', ', ', ', '' '', ', and ''thud''; several of these words are references to the game '' Colossal Cave Adventure''. A complete reference can be found in a MIT Press book titled ''
The Hacker's Dictionary The Jargon File is a glossary and usage dictionary of slang used by computer programmers. The original Jargon File was a collection of terms from technical cultures such as the MIT AI Lab, the Stanford AI Lab (SAIL) and others of the old ARPANET ...
''.


Japanese

In Japanese, the words (ほげ) and ''fuga'' (ふが) are commonly used, with other common words and variants being piyo (ぴよ), (ほげら), and (ほげほげ). メタ構文変数 The origin of as a metasyntactic variable is not known, but it is believed to date to the early 1980s.


French

In France, the word ''toto'' is widely used, with variants ''tata'', ''titi'', ''tutu'' as related placeholders. One commonly-raised source for the use of ''toto'' is a reference to the stock character used to tell jokes with Tête à Toto.


Usage examples


C

In the following example the function name ''foo'' and the variable name ''bar'' are both metasyntactic variables. Lines beginning with // are comments. // The function named foo int foo(void)


C++

Function prototypes with examples of different argument passing mechanisms: void Foo(Fruit bar); void Foo(Fruit* bar); void Foo(const Fruit& bar); Example showing the function overloading capabilities of the C++ language void Foo(int bar); void Foo(int bar, int baz); void Foo(int bar, int baz, int qux);


Python

Spam Spam may refer to: * Spam (food), a canned pork meat product * Spamming, unsolicited or undesired electronic messages ** Email spam, unsolicited, undesired, or illegal email messages ** Messaging spam, spam targeting users of instant messaging ( ...
, ham, and eggs are the principal metasyntactic variables used in the Python programming language. This is a reference to the famous comedy sketch, "
Spam Spam may refer to: * Spam (food), a canned pork meat product * Spamming, unsolicited or undesired electronic messages ** Email spam, unsolicited, undesired, or illegal email messages ** Messaging spam, spam targeting users of instant messaging ( ...
", by
Monty Python Monty Python (also collectively known as the Pythons) were a British comedy troupe who created the sketch comedy television show '' Monty Python's Flying Circus'', which first aired on the BBC in 1969. Forty-five episodes were made over four ...
, the eponym of the language. In the following example spam, ham, and eggs are metasyntactic variables and lines beginning with # are comments. # Define a function named spam def spam(): # Define the variable ham ham = "Hello World!" # Define the variable eggs eggs = 1 return


IETF Requests for Comments

Both the IETF
RFC RFC may refer to: Computing * Request for Comments, a memorandum on Internet standards * Request for change, change management * Remote Function Call, in SAP computer systems * Rhye's and Fall of Civilization, a modification for Sid Meier's Civ ...
s and computer programming languages are rendered in plain text, making it necessary to distinguish metasyntactic variables by a naming convention, since it would not be obvious from context. Here is an example from the official IETF document explaining the e-mail protocols (from RFC 772 - cited in RFC 3092): All is well; now the recipients can be specified. S: MRCP TO: R: 200 OK S: MRCP TO: R: 553 No such user here S: MRCP TO: R: 200 OK S: MRCP TO:<@Y,@X,fubar@Z> R: 200 OK Note that the failure of "Raboof" has no effect on the storage of mail for "Foo", "bar" or the mail to be forwarded to "fubar@Z" through host "X". (The documentation for texinfo emphasizes the distinction between metavariables and mere variables used in a programming language being documented in some texinfo file as: "Use the @var command to indicate metasyntactic variables. A metasyntactic variable is something that stands for another piece of text. For example, you should use a metasyntactic variable in the documentation of a function to describe the arguments that are passed to that function. Do not use @var for the names of particular variables in programming languages. These are specific names from a program, so @code is correct for them.") Another point reflected in the above example is the convention that a metavariable is to be uniformly substituted with the same instance in all its appearances in a given schema. This is in contrast with nonterminal symbols in formal grammars where the nonterminals on the right of a production can be substituted by different instances.


Example data


SQL

It is common to use the name
ACME Acme is Ancient Greek (ακμή; English transliteration: ''akmē'') for "the peak", "zenith" or "prime". It may refer to: Arts and entertainment * ''Acme'' (album), an album by the Jon Spencer Blues Explosion * Acme and Septimius, a fictional ...
in example SQL Databases and as placeholder company-name for the purpose of teaching. The term 'ACME Database' is commonly used to mean a training or example-only set of database data used solely for training or testing. ACME is also commonly used in documentation which shows SQL usage examples, a common practice with in many educational texts as well as technical documentation from companies such as Microsoft and
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
.


See also

*
Metavariable (logic) In logic, a metavariable (also metalinguistic variable or syntactical variable) is a symbol or symbol string which belongs to a metalanguage and stands for elements of some object language. For instance, in the sentence :''Let A and B be two sente ...
* xyzzy * Alice and Bob * John Doe * Fnord * Free variables and bound variables *
Gadget A gadget is a mechanical device or any ingenious article. Gadgets are sometimes referred to as '' gizmos''. History The etymology of the word is disputed. The word first appears as reference to an 18th-century tool in glassmaking that was develo ...
*'' Lorem ipsum'' * Nonce word * Placeholder name * Widget * Smurf


References

{{Reflist


External links


Definition of ''metasyntactic variable'', with examples.
used in ''
Commonwealth A commonwealth is a traditional English term for a political community founded for the common good. Historically, it has been synonymous with "republic". The noun "commonwealth", meaning "public welfare, general good or advantage", dates from the ...
Hackish'', such as ''wombat''.
Variable "foo" and Other Programming Oddities
Placeholder names Metalogic Variable (computer science) Syntax (logic)