Metasyntactic variable
From Wikipedia, the free encyclopedia
A metasyntactic variable (pronounced /ˌmɛtəsɪnˈtæktᵻk ˈvɛriəbl/) is a placeholder name or an alias term commonly used to denote the subject matter under discussion or an arbitrary 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.[1]
Any word can be used as a metasyntactic variable, but "nonsense words" are commonly used. The same concept is employed in other fields where it is expressed by terms such as schematic variable (see logical form).
Contents |
[edit] Explanation of the concept
[edit] Dissecting the word
- 'Meta' means information about, more comprehensive, or transcending.
- 'Syntax' means the grammatical arrangement of words or The grammatical rules of a programming language.
- 'Variable' means something that can assume a value, or something likely to vary.
So we have a word that
- transcends grammar and can assume a value
or one that
- is more comprehensive than grammatical arrangement and is likely to vary.
[edit] Mathematical analogy
- A metasyntactic variable is as a word that is a variable for other words, just as in algebra letters are used as variables for numbers.[1]
[edit] Words commonly used as metasyntactic variables
A "standard list of metasyntactic variables used in syntax examples" is: foo, bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud.[1] The word foo occurs in over 330 RFCs and bar occurs in over 290.[citation needed]
Foo is used in one section of a tutorial on the C programming language by Brian W. Kernighan. Here, he illustrates the use of the extern declaration:[2]
Second, at the beginning of any file that contains functions needing a variable whose definition is in some other file, put in an extern declaration, outside of any function: extern int foo; f1( ) { ... } etc.
Spam, ham, and eggs are the canonical metasyntactic variables used in the Python programming language.[3] This is a reference to the famous comedy sketch, Spam, by Monty Python, the namesake of the language.[4] In this extract from the Python tutorial showing the use of comments,[5] STRING is a metasyntactic variable.
Some examples: # this is the first comment SPAM = 1 # and this is the second comment # ... and now a third! STRING = "# This is not a comment."
[edit] See also
- Placeholder name
- Free variables and bound variables
- gadget
- widget
- Hello World
- Lorem Ipsum
- Fnord
- Alice and Bob
- John Doe
[edit] References
- ^ a b c RFC 3092 (rfc3092) - Etymology of "Foo"
- ^ Brian W. Kernighan: Programming in C: A Tutorial
- ^ Python Tutorial
- ^ General Python FAQ
- ^ 3. An Informal Introduction to Python