Talk:Metasyntactic variable

Jargon File Reference
http://www.catb.org/jargon/html/M/metasyntactic-variable.html kf4yfd (talk) 20:42, 8 August 2017 (UTC)

Yet another merge proposal
"Nyuszika7H" created an account just to propose the merge. I see no discussion from the proposer, but it looks like there has been plenty from everyone else over the years, without a pro-merge consensus. I do not know enough to argue whether Foobar is or is not a metasyntactic variable, but from a user perspective, I find it far more notable and in need of an independent article. Unless someone wants to argue this again, I'll delete that proposal in a few days.--Martin BerkaT&#124;C 12:37, 8 September 2014 (UTC)


 * Not at all, I've had this account for years but I'm quite inactive. "Foobar" consists of two metasyntactic variables actually ("foo" and "bar"). I initially thought it might be a good idea to merge it into this, but maybe it's not such a good idea considering the amount of information in that article. Nyuszika7H (talk) 17:45, 17 September 2014 (UTC)
 * Removing merge notice from Foobar. All the best: Rich Farmbrough, 12:05, 23 May 2015 (UTC).


 * And here. All the best: Rich Farmbrough, 12:06, 23 May 2015 (UTC).

Why "metasyntactic" anyway?
The term "metasyntactic variable" is used in this article to specifically denote the concept as it pertains only to computer science and programming language theory.

The "meta-syntax" part does imply that the word transcends the normal grammar and rules of the programming language. By example: the word foo can be the name of a variable, function, data structure, or more. It is also universally understood and implied that the common metasyntactic variables foo, bar, baz, spam and others and are used as an example only in source code. These words are used in places where the programmer should use artistic license and use a better or more meaningful name in their actual program.. kf4yfd (talk) 07:59, 17 June 2013 (UTC)


 * As far as i get, a MSV stands for a variable. Thus it would be a meta-variable. The word "metasyntactic" somehow makes me think that it should stand for a piece of syntax, which does not seem to be the case, as maybe "VP" for any Verbal Phrase in Generative Grammar, but i'd rather call that simply "syntactic variable". So, I further would except something metasyntactic to refer to syntax on a meta level. This seems not to be the case with a Metasyntactic Variable.

Moreover, am I wrong to believe that a MSV rather has to do with semantics?


 * I demand an explanation for the "meta-syntactic", or someone to show that the term was just wrongly introduced by someone making the boring work on a tutorial more interesting together with a remark that the concept is not literally but rather traditionally accurate. —Preceding unsigned comment added by 84.44.171.106 (talk) 19:03, 18 October 2008 (UTC)


 * The term metasyntactic variable is used in the IETF RFC 3092. The authors of the document and therefore the originators of the word are listed at the bottom of the document, complete with e-mail addresses and telephone numbers. See: RFC 3092
 * kf4yfd (talk) 04:26, 23 February 2009 (UTC)


 * Using a term is not originating. RFC 3092 is from 2001. The term can be found in older files, as e.g. the 1991 Jargon file v. 2.6.2. Morton Shumway  —  talk  14:49, 27 September 2010 (UTC).


 * It's a lot older than that. I remember the term MSV from the version of the Jargon file I read at MIT in 1977 or so. Noel (talk) 15:37, 29 September 2010 (UTC)
 * Of course it is a lot older, but the 1992 reference was sufficient for the argument. Morton Shumway  —  talk  21:14, 29 September 2010 (UTC)


 * Do note the "1 April 2001" as the date of RFC 3092. Attempting to take too seriously that one can result in severe brain damage. Tijfo098 (talk) 02:19, 25 November 2012 (UTC)

Placeholder names are NOT metasyntactic variables
RFC3092- "The etymology of foo" describes the use of a metasyntactic variable.

Metasyntactic variables are used with variables, placeholder names are commonly only used to describe nouns.

Placeholder names are used in human communications in place of the correct word. A metasyntactic variable is "a variable of a variable", hence the meta. Somewhere along the line these 2 pages have crossed paths and intermingled and need to be re-separated. Merging these 2 pages would only add to what is already a mess. kf4yfd 13:47, 15 February 2007 (UTC)


 * RFC 3092 - Etymology of "Foo" --Jtir 23:26, 22 June 2007 (UTC)

Cleanup
I've removed a large chunk of the examples, as the article was mostly an example farm. Please use some judgment in building the article back up so that it doesn't turn into an unwieldy mess again. - Stephanie Daugherty (Triona) - Talk - Comment - 19:47, 13 January 2008 (UTC)

Discussion Archives
http://en.wikipedia.org/wiki/Talk:Metasyntactic_variable/Archive_1 —Preceding unsigned comment added by Kf4yfd (talk • contribs) 16:37, 14 January 2008 (UTC)
 * Thanks, I'll leave it to you to complete the archiving by removing whatever comments you have copied to Talk:Metasyntactic_variable/Archive_1. --Jtir (talk) 22:20, 14 January 2008 (UTC)
 * Sorry, got sidetracked with dinner plans ... work in progress kf4yfd (talk) 22:38, 14 January 2008 (UTC)

source example
Is there an example from the Ruby (or Python) documentation that could be used? The example from Variable "foo" and Other Programming Oddities doesn't provide the context. That's why I quoted Kernighan in the article. --Jtir (talk) 14:04, 16 January 2008 (UTC)
 * Why delete the =Specific Examples= section? All references were properly cited and relevant. Also why is the source of the ruby code under question if it is properly formatted and an example of a metasyntactic variable? Also I cannot find an example of "foo" in the proper ruby documentation. Ruby was chosen (and that specific example) because it is easily readable to a beginning programmer and possibly to non-programmers. kf4yfd (talk) 14:16, 16 January 2008 (UTC)
 * Let's see if we can find an easy example in a realistic context. Python has much more documentation than Ruby. I haven't looked for one, but would a Python example be OK?


 * One specific problem with the Variable "foo" and Other Programming Oddities example is that it is syntactically incorrect.
 * An editor had to fix it.
 * --Jtir (talk) 14:29, 16 January 2008 (UTC)

[Copied from User talk:Jtir to maintain context.] --Jtir (talk) 14:40, 16 January 2008 (UTC)

Thanks for helping on the cleanup of this article, it was a disaster. I do not believe that the Kernighan example of foo is sufficient to give an example of the use of a metasyntactic variable and a more complete code snippet would be better. That example in fact is about the use of local and global variables. Mabey an example in BASIC would be one better still. Let me know your thoughs. Also why delete relevant and properly cited information, especially on a very short page relating to an advanced concept. A lot of "googling" to find references went into keeping as much relevant info from the |"Pre Cleanup Taskforce" page. kf4yfd (talk) 14:33, 16 January 2008 (UTC)


 * Thanks for cleaning up the article and adding references. A reference is how I discovered the Kernighan example. BASIC would be fine. Does the example have to use foo?
 * I didn't remove Variable "foo" and Other Programming Oddities, but put it into the exlinks, since it is certainly relevant.
 * --Jtir (talk) 15:14, 16 January 2008 (UTC)
 * I have added source snippets with context. The Kernighan example needs more annotation. --Jtir (talk) 16:55, 16 January 2008 (UTC)
 * I have added source snippets with context. The Kernighan example needs more annotation. --Jtir (talk) 16:55, 16 January 2008 (UTC)

What is f1 in the Kernighan example?
Is f1 in the Kernighan example a metasyntactic variable or a placeholder name? --Jtir (talk) 14:32, 16 January 2008 (UTC)
 * And what is the status of "SPAM = 1" in the Python example? --Jtir (talk) 16:15, 16 January 2008 (UTC)

Re-direct
Why does the word 'wibble' redirect here? I can't find any mention of it in the article. 86.0.108.178 (talk) 23:12, 5 April 2008 (UTC)


 * 1) http://dictionary.reference.com/browse/wibble 3. One of the preferred metasyntactic variables in the UK, forming a series with `wobble', `wubble', and `flob' (attributed to the hilarious historical comedy "Blackadder"). 158.227.6.225 (talk) 16:47, 25 February 2009 (UTC)

metalinguistic
Is this the exact same thing as a metalinguistic variable ? Pontiff Greg Bard (talk) 03:59, 22 April 2008 (UTC)

Is Suppliers & Parts an example?
Is Suppliers and Parts database a meta-variable? TMC1221 (talk) 05:38, 16 July 2008 (UTC)

The STRING example
In my opinion, the word STRING in the Python example is not a normal metasyntactic variable (it's not normal Python either; someone should fix that tutorial). The whole point with a metasyntactic variable name is to be an obviously nonsense word, to tell the reader:
 * If this wasn't a generic example, you would choose a context-specific word here. But the example is generic, so I have invented an absurd Alice-in-Wonderland context to make that clear.

This is why x, i, STRING and so on aren't metasyntactic variables. They can be applied in any context. If you copy an example which uses i as an array index, you will keep the i. If you copy some code which uses foo, you are supposed to change foo to something suitable. JöG (talk) 19:53, 1 August 2008 (UTC)


 * I agree with that. At first, the Python STRING example was confusing to me. Therefore, in my opinion the example is not very helpful and makes it more difficult to understand metasyntactic variables. I think we should remove the example from the article. Ladylab (talk) 02:16, 25 September 2008 (UTC)

erm yeah. i understand what a metasyntactic variable is but dont see how the python eg. is one? isn't it just a string with something that looks like a comment in? —Preceding unsigned comment added by 81.103.124.181 (talk) 18:30, 22 October 2009 (UTC)

Not "some communities." Pretty much just ESR
Eric Raymond is the only person who uses this term. Raymond is well known for claiming that his personal opinions/coined phrases are representative of the entire programmer community. This article is in Wikipedia because Wikipedia did an import of the Jargon file. There is no citation in the article of anyone else ever using the term. Ideally, the content should be merged into foo and all mention of "metasyntactic" dropped. -- Arvindn (talk) 19:12, 9 December 2008 (UTC)


 * I support your proposal. 87.113.109.162 (talk) 20:06, 10 December 2008 (UTC)


 * Thirded. &lt;eleland/talkedits&gt; 18:38, 3 January 2009 (UTC)


 * To claim that Eric Raymond is the "only" person who uses the term is sheer unadulterated nonsense. I'm not ESR and I use the term. So do many others. Here are some random examples found in about three seconds of googling:
 * http://www.gnu.org/software/hello/manual/texinfo/var.html
 * http://tools.ietf.org/html/rfc3092
 * http://www.geuz.org/getdp/doc/texinfo/getdp_17.html
 * Here's a blog that is named after the term: http://metavar.blogspot.com/
 * The phrase "metasyntactic variables" isn't just used by programmers. The term has been used in the fiction of Terry Pratchett (I believe the first explicit reference to MSV was "Men At Arms"). http://wiki.lspace.org/wiki/Metasyntactic_variable As the second most-read living British author, he's given the term a pretty large audience. Limeguin (talk) 08:38, 9 February 2009 (UTC)

fumble and fooey
R language definition, http://cran.r-project.org/doc/manuals/R-lang.pdf uses these in section 4.3.2 (illustrating partial matching of named arguments in function calls) 193.40.5.245 (talk) 18:01, 19 December 2008 (UTC)

Computer gaming sources of placeholders
xyzzy and plugh are references to Colossal Cave Adventure. I don't have a link but I think that bar, blee and baz may be in the Zork text adventure games. However, I am not sure of the direction of reference. If they are in Zork, it may be a reference to metasyntactics in other programs. --SaintD1970 (talk) 22:52, 6 February 2009 (UTC)

Mostly just a placeholder
Most of the time, the term "metasyntactic variable" is used as just a fancy-sounding way of saying "placeholder" or "arbitrary variable". Usually there is nothing metasyntactic going on.

For instance, when a Python tutorial says that you can append one list onto another by writing, neither "spam" nor "eggs" is being used metasyntactically. They are being used as the names of ordinary Python variables. These names are placeholders, because in real code you would use variable names that were meaningful in the application domain. The names "spam" and "eggs" are arbitrary but there is no meta-syntax here.

In contrast, here is a metasyntactic statement: "If spam and eggs are both valid Python expressions, then (spam, eggs) is a valid expression." This does not mean that the literal string "spam" is valid Python. Rather, it means that if you have two valid expressions -- such as 1 + 1 and "goat" -- then you can make a tuple of them: (1 + 1, "goat"). In this case, "spam" is not a variable of Python; rather, it stands for a piece of Python code.

But saying that "foo" or "spam" is a metasyntactic variable is just hogwash. "Foo" or "spam" are just placeholder names, which are sometimes used metasyntactically and sometimes not. --71.146.7.39 (talk) 10:05, 5 January 2010 (UTC)


 * Thanks for clearing this up. I agree that it would be more clear for Wikipedia not to use the two terms interchangeably -- especially for those interested in Computer Science. Inhahe (talk) 23:55, 5 January 2010 (UTC)

SPAM in Python?
those placeholders may have been used in the tutorial, but the author was obviously a Monty Python fan. i've spent many hours in #python and my experience is that foo/bar/baz are primarily used (i've never seen SPAM). not that i don't like to see Python referenced wherever possible... but i think using the word "principal" there may be a bit ambiguous. what are some synonyms for "official"? Inhahe (talk) 23:55, 5 January 2010 (UTC)
 * Never seen spam? spam is widely used. A search of the 2.6.4 docos at http://docs.python.org/search.html?q=spam has 35 hits. Foo and bar are also there, but mainly as plain text or file/module names. peterl (talk) 03:49, 6 January 2010 (UTC)
 * Any history of why "ham" is common rather than "bacon"? Not R (talk) 16:22, 3 February 2020 (UTC)
 * Hmmm, is there any actual reference for this? The cited doc doesn't use the word "metasyntactic" and I didn't find any obvious synonyms like "dummy variable" or "placeholder variable."  In the current level I find 4 occurrences of spam, ham, and eggs together, 3 of spam, eggs, and bacon, and 2 of spam, ham, and bacon.  In the oldest version still there, 2.7, the combinations with "ham" have only one occurrence each, so spam, eggs, and bacon was the most common (as I expected). Not R (talk) 17:43, 14 March 2020 (UTC)

Is "metasyntactic variable" used in logic?
It's important that wikipedia doesn't describe the phrase as being used in logic, unless it really is used.

My concern is that logic students read may wikipedia, think it's true, and start using it this way, so that it becomes true. That's not the right order of events. (It would be a different story if you were writing a textbook on logic; then, if you think it should be used this way, you'd be free to use it.)

The concept does indeed appear in logic; I would use the simpler term "metavariable" and perhaps that is widely used. —Preceding unsigned comment added by ComputScientist (talk • contribs) 06:51, 23 September 2010 (UTC)


 * A problem is, this page is partly about the genuine philosophical notion of metavariable/metalinguistic variable. But it is also partly about the April Fools RFC 3092 and the way that hackers sometimes use the phrase "metasyntactic variable" to mean "a common nonsense-name for variables, like foo". These two concepts are different. ComputScientist (talk) 09:29, 24 September 2010 (UTC)


 * You can think it's childish all you like. Until/Unless you produce a *SINGLE* citation that ACTUALLY supports this use, it's OR. Period.  —Preceding unsigned comment added by 71.139.30.228 (talk) 17:52, 25 September 2010 (UTC)


 * I have and you are baldly ignoring it. Please do identify yourself.Greg Bard (talk) 00:03, 26 September 2010 (UTC)

Dear Greg, the book reference mentions metalinguistic variable, and there is no evidence that logicians ever use the phrase metasyntactic variable. In the current form of the page, that's very unclear. I'm concerned that logic students will start saying metasyntactic variable because of this page; that's not the right order of events. Wikipedia should not influence society in that way. I have no hidden agenda: I am a both a professional logician and computer scientist.

To me, the concept used by logicians is more important than the fact that the word "metasyntactic" is used in a jocular way by hackers (e.g "foo is the first metasyntactic variable", meaning "foo is the first variable name we use when we can't think of one"). I would be in favour of renaming this page "metalinguistic variable", to make the hackers' jocular use of "metasyntactic" a subsection of the page, rather than the primary focus. What do you think? This has clearly confused many people in the past, above, and it would be good to sort it out. I would like to have a go, but I'm worried you'll just keep reverting me. ComputScientist (talk) 06:33, 26 September 2010 (UTC)


 * I have no preference for either name as they are the same. However, I would prefer it not be used as an opportunity to delete any content, or portray the concept as exclusive to one field or the other.Greg Bard (talk) 16:24, 26 September 2010 (UTC)


 * In the 1973 paper bound edition of Hunter's book the term metalinguistic variable is indeed mentioned on page 13. There (in the answer to exercise 7) it reads: "'A' and 'B' here are metalinguistic variables, belonging to the metalanguage of the language L." However, metavariable is the more common term (I find it—but not the former—in several encyclopedias of logic. I think that metasyntactic variable is jargon and has never been a term in the strict sense in logic or computer science. If you think about it, it does not make any sense—it is a variable in a metalanguage (so meta- or metalinguistic variable would be fine), but neither is it from some metasyntax, nor does it stand for some syntactic thing. It is understandable (for historical and social reasons) that both lemmas redirect to metasyntactic variable, yet it has to be acknowledged that the latter term is not used in logic, nor is it used by Hunter. Since the article is on metasyntactic variable I see no reason not to remove the reference to logic. The better solution however would be to make metavariable the main article, have the other two link to it and add a section on metasyntactic variable (and ignore that lots of net culture people would be unhappy). Best, Morton Shumway  —  talk  19:19, 26 September 2010 (UTC).
 * What is more, I suggest that we discuss this issue here and decide on a good solution instead of carrying on with the edit-and-revert routine. Best, Morton Shumway  —  talk  19:27, 26 September 2010 (UTC).


 * I am certainly open minded to renaming it "metavariable" however I am primarily interested in avoiding the terminology chauvinism that it belongs to US not THEM, and focusing on the concept, more than the terminology. That 'thing' which consists of a symbol used to represent symbols of some other language? We don't need several articles to cover that concept just because it is used in several fields. Each of the relevant fields deserves to be mentioned If there are mathematicians who use this concept, then mathematics deserves to be included also --I don't speak for them. However "logic" has clearly staked its claim with a RS.Greg Bard (talk) 20:02, 26 September 2010 (UTC)


 * I guess "metavariable" is more neutral. I tentatively agree that we should have one article. But I am wondering if hackers always mean this concept when they use this word. Let's look at some examples from the jargon file. The following phrase seems to intend the concept from logic:
 * the value of f(foo,bar) is the sum of foo and bar
 * but the next one does not:
 * In filenames, a common convention is that any filename beginning with a metasyntactic-variable name is a scratch file that may be deleted at any time.
 * -- surely the real name of a file is by definition syntax, not metasyntax. Similarly, in the Python example on this wikipedia page, the piece of code is surely a piece of real code, with the variables so named so that it's clear that the choices were arbitrary and so that the reader does not try to read too much into the code. It is not a piece of code with free metavariables, into which you would substitute other syntax. Is it? ComputScientist (talk) 06:29, 27 September 2010 (UTC)


 * I don't think there is a real problem with terminology. True, there is a term and a concept, but it just makes sense to treat the concept under the term which tends to be used rather than one that does not. As I already said I had to specifically look into Hunter's book to find the term "metalinguistic variable" used, in some other books, however, I readily find "metavariable" for the same concept (viz. books form the fields of logic, AI, philosophy of language etc., I can give specific examples if that would help). Accordingly, I think that the lemma should be "metavariable".
 * Interestingly, I had the quarrel with myself a few years ago when I was reading Harel's Algorithmics and had a sudden urge to clarify the expression "metasyntactic variable". If you read the jargon file or ponder about what is actually done with the term, it is not as clearly as one might think the same concept as "metavariable", just as ComputScientist argues.
 * A metavariable is some symbol in a metalanguage that stands for some entity in the object language. It is used all the time, e.g. in propositional logic, as in saying "If P and Q are well-formed sentences …", P and Q being metavariables. In general, a variable can be defined as an expression that ranges over entities of a model.
 * A metasyntactic variable (MSV) by the jargon file is (1) defined as a name, is (2) said to stand for things under discussion, is (3) said to be a variable in the metalanguage used to talk about programs, is (4) said to be a variable for variables. The "-syntactic" is (5) only specifically referred to in the suggestion that the name was chosen for esthetic/rhetorical reasons. (3) and (4) make some sense, but to some extent deviate from what a metavariable in logic is, and (5) is indeed suggestive of "jocular" use. Generally, it seems to me that "metasyntactic variable" is far more losely defined than MV, and sometimes more close to the concept of placeholder name (which is a different concept than that of a proper variable in logic or computer science). Still, there seem to be genuine cases where foo etc. are used as metavariables, however, the difference in concept remains. Also, think of the fact that the "variableness" of MSV is closer to the meaning of "variable" in logic than in computer science. A thorough clarification of the similarities and differences between what is referred to as MV and MSV, resp., would take much more time I am afraid.
 * Unfortunately, at one point many of the references to metavariables (the strict concept from logic) throughout WP have been put as metasyntactic variables (the loose concept from computer culture). E.g. metalanguage.
 * However, it seems that a reasonable first step that can be agreed upon is to have an article "metavariable" with a subsection on the specifities and worries with MSV.
 * Best, Morton Shumway  —  talk  13:19, 27 September 2010 (UTC).


 * Thanks Morton. I agree. As a first step, I've put a move tag at the top in case the move is controversial. By the way, do you mean to say that you found the word "metasyntactic variable" in Harel's Algorithmics? ComputScientist (talk) 18:39, 27 September 2010 (UTC)


 * Of course not. It must have been something in there which made me think about the term, possibly something on the syntax-semantic distinction. Best, Morton Shumway  —  talk  22:14, 27 September 2010 (UTC).



Create an article for metavariable, talking about how that term is used in the field of formal logic, etc, if you want, but please DO NOT get rid of the metasyntactic variable article. The term has been used in computer science since it appeared in the Jargon file definition of "Foo" sometime in the 1970s or so (I myself first saw the term there circa 1977), and it is now quite well-known. (Google shows about 7,000 hits for "metasyntactic variable", for instance.) Things like 'foo' are not just a meta-variable, because the same symbols(s) (e.g. "foo") are used in many different syntaxes, and recognized across those multiple syntaxes as being the same thing - i.e. a meta-variable. So it's a cross-syntax metavariable - i.e. a meta-syntactic variable - just like the name of the article. Noel (talk) 15:48, 29 September 2010 (UTC)
 * Thanks for your opinion, Noel. I would be fine with two articles. At the same time, I would be precise about what to put into the MSV article. As has been argued, the term is a vague, common-language concept for a loose collection of different things. That is just fine, but should discourage scientific-sounding definitions guessing about what the 'syntactic' part might precisely mean (yours is just one of many different ones). When you take the time to dig through the first 200 or so Google hits, you will see that there is about *no* computer science text (CS not as much as in hacking, but rather as in automata theory etc.) You mostly find "definitions", blog titles and files just like the jargon file, or generic help files. Put it into Google Scholar, you get less than three pages of hits. One article that contains the term is about humour in CS, in another one the term seems to be used ad hoc in a different sense. Maybe someone can point towards some texts where the word is used as an actual computer science term?—I am not saying that the term has not been part of computer culture, or is not used with particular meanings (Q: "Know what those 'foo' and such actually are? Are metasyntactic variables!" A: "Yay!"), or that there should not be an article, but that the humourous and discoursive aspects, and a possible vagueness should be part of the article. Best, Morton Shumway  —  talk  21:52, 29 September 2010 (UTC)
 * I'm happy with two articles. The article on "metavariables" could have a short section on "metasyntactic variables". I know Greg Bard was worried about making unnecessary separation between logic and computer science. But this is a term that logicians don't use, and moreover hackers seem to use it to mean something that logicians don't think about. So perhaps the separation is necessary in this instance. I also agree with Morton that if the phrase "metasyntactic variable" is only ever used casually, etc, then that should be made clear in this article. (Otherwise there is a risk of it creeping into formal writing as a result of this article, which is the wrong order of events.) ComputScientist (talk) 08:41, 1 October 2010 (UTC)
 * Again, If we focus our attention on the concept not the terminology, we can avoid a lot of redundant articles about the same thing. This is more comprehensive and useful to the reader (remember them?). The only reason Wikipedians seem to like to segregate into several articles is territorial. If we take an interdisciplinary approach, we get a higher quality product. The biggest stumbling block is issues like this one where members from one field want the article to themselves without the "distraction" of inter-disciplinarity. It's unfortunate.Greg Bard (talk) 23:58, 2 October 2010 (UTC)
 * I think that the discussion thus far has shown that MV and MSV are not the same concepts, unless you would like to leave all placeholder name aspects etc. of MSV out of the article, which Noel has reminded us with convincing reason not to do. I think that an article which blends the two concepts into one (as the current article does) is not very useful for readers, and bad, too. There are reasons to have different lemmas for different concepts or terms (as in 'terminology') other than Greg Bard refers to. This does not at all go against interdisciplinarity—not the mention transdisciplinarity—and I cannot see things like 'terminology chauvinism' or territorialism (what ever they are) to be an issue at the moment. My impression is that we have compiled sufficient argument for a soon decision (and I or someone else might put those together before that).  Morton Shumway  —  talk  01:35, 3 October 2010 (UTC)

I think that we might do this very soon, so I propose that the article is moved to Metavariable, and the contents that are specific go into a new article Metasyntactic variable together with some additions. However, in regard of the ideas given below, we could also go for MV (logic) and MV (computer science) and have the latter subsume MSV. Best, Morton Shumway  —  talk  22:30, 10 November 2010 (UTC).

Please find a new article Metavariable (logic). Best, Morton Shumway  —  talk  04:56, 19 November 2010 (UTC).

A separate article on metavariables?
Let me attempt to summarize the situation.

Two different concepts. The concept intended by "metasyntactic variable" by the programmer community is hard to pin down, perhaps the term means many things. We cannot find a precise definition, but it includes "a variable-name that you use when you don't want to think of one". The concept intended by "metavariable" by logicians is a precise one, and it does not include all the concepts that are described by "metasyntactic variable".

Two different terms. The term "metasyntactic variable" is never used in formal scientific literature. But the term "metavariable" is used in texts on logic.

Some points that have been raised:
 * If the two terms refer to the same concept, then there should only be one page.
 * If the term "metasyntactic variable" is only ever used in an informal context, this should be clear from the article, to avoid the situation where wikipedia changes how people write.

Let me know if I have missed anything out. If there is some consensus, then I or someone else can have a go a making a new page. ComputScientist (talk) 17:41, 9 November 2010 (UTC)


 * I second the notion that a separate page should be created for metavariables. Metasyntactic is the term used within IETF RFC's and miscellaneous other computer programming references and as such this page should stay. These are two similar but different concepts which should not be confused.
 * The difference between a metasyntactic variable and a metavariable:
 * Metasyntactic variables can change withing a programming language. Ex: write a function within a program and name it whatever you like (foo, bob, test, etc)
 * Metavariables do not change and cannot as they are hard-coded as part of the language Ex: a variable %host% returns the hostname of the machine on which the program is currently running.
 * Outside of the realm of computer science (ie logic) I do not have the knowledge to comment on this words usage. Comments welcomed.
 * I have a computer-science centric version of this page ready to go at User:Kf4yfd/msv for when all this is sorted out kf4yfd (talk) 06:39, 10 November 2010 (UTC)


 * Thanks Kf4yfd. I think you are proposing "metavariable" as something that the preprocessor will instantiate. I guess there is a connection with metaprogramming. Do you have further evidence for this use of "meta variable"?
 * Regarding your page User:Kf4yfd/msv, just a small comment: I think we should note that the term is used informally and in RFCs (as opposed to in textbooks and scientific literature). ComputScientist (talk) 16:55, 10 November 2010 (UTC)
 * I have heard the term metasyntactic variable used formally in the classroom (I am still a student), but it is more a concept that is used when discussing creating a new programming language or writing a complier. Because of this I disagree that it is used only informally. I googled the term, limiting to only .edu sites and returned many results. The oldest usage I found for metasyntactic variable was in a paper from MIT  which is dated 1975. As to the usage of the term metavariable, again I googled  and returned a number of results. Meta-variables are a core concept of many, if not all, programming and scripting languages. If you are familiar with C programming, such an example would be argc and argv[]. These are metavariables because their names are part of the language with a specific purpose, and not user created.
 * Metasyntactic variable: the part that is being transcended (meta) is the syntax (name of the variable), and the variable acts as one would expect.
 * Metavariable: the part being transcended (meta) is the variable itself as these do not act as variables normally do (cannot be renamed for example). kf4yfd (talk) 18:19, 10 November 2010 (UTC)


 * Thanks. I'm actually struggling to find formal (published) references for "metasyntactic variable" other than the 1975 one that you found. I think the term was invented as a bit of a joke (jargonfile says "it sounds good") so we should not now try to make it too serious. As for metavariables: I think __FILE__ is a better example of a metavariable (if we should call it that) in C; argc/argv[] are not really metavariables, they're just parameters to the main function. ComputScientist (talk) 21:16, 10 November 2010 (UTC)

Thanks a lot, ComputScientist, for the resummee and to kf4yfd for the additional input. Please let us not forget that we did not only discuss this to clarify the concept in CS, but also to do justice to logic. Finally, the concept/term issue can also imply one article that has a second, related concept as a subtopic. This could be the case with MSV and MV in CS, so they could go in one. The logically more strict idea of MV as discussed should go into one, at least. I will continue at the discussion about this above. Best, Morton Shumway  —  talk  22:26, 10 November 2010 (UTC).

Please find a new article Metavariable (logic). Best, Morton Shumway  —  talk  04:56, 19 November 2010 (UTC).

Page moved
Per the discussion on this page, and a discussion with a few admins, this page was moved to metavariable (logic). A large amount of cleanup is however needed. kf4yfd (talk) 03:04, 11 November 2010 (UTC)
 * Hi. It is best to discuss the move here, rather than on IRC, so we have a record of what is said. I don't think there is consensus to move to metavariable (logic). I would prefer to create a new article called metavariable and leave this one as it is. To make a new article called metavariable (logic) makes an apparently unnecessary distinction between metavariables in logic and their supposed use in computer science (which is what Greg Bard was against).
 * Also, sorry to keep bugging you about this, but we do need some citations for "a metavariable is ... whereas a metasyntactic variable is ...". I appreciate that you've synthesized a nice distinction, but it should come from a published source, rather than from you thinking to yourself... ComputScientist (talk) 12:01, 11 November 2010 (UTC)
 * I just want to thank you for your consideration of my point. I am not very happy that exactly what I said would happen did. (I.e. a 'this term belongs to our field of study not yours' type of thing). From my experience there is little that I can do about this situation for cultural reasons, and perhaps it is best we go our separate ways, which is to say we should just have a Metasyntactic variable (logic) article and be done with it.Greg Bard (talk) 15:48, 11 November 2010 (UTC)
 * I still think there does not have to be a problem about who owns which, and I have offered suggestions and rationales for a good solution. However, I am surprised that after quite some discussion about the use of Metavariable vs. Metasyntactic variable in logic you consider the latter a good lemma, Gregbard. Anyway, even though I outlined several possibilities above, what has been done now indeed seems to be the most unfortunate case: The logical aspects of the article to the trashes for someone else to fish out, and Metavariable (logic) a redirect to MSV. "A large amount of cleanup" is not accurate. Maybe kf4yfd and ComputScientist could have had their discussion here open for those who took part in the original discussion as well? Plus, I think that ComputScientist and Gregbard are right, the article should just be "Metavariable". Best, Morton Shumway  —  talk  01:32, 12 November 2010 (UTC).


 * Please find a new article Metavariable (logic). Best, Morton Shumway  —  talk  04:57, 19 November 2010 (UTC).

Redirections
Hi. The pages Ned Baker redirects here. But the phrase does not appear on this page. Should "Ned Baker" appear on this page? or should the page Ned Baker be deleted? ComputScientist (talk) 16:21, 2 February 2011 (UTC)

Serious confusions
Foo and bar as used in the programming language examples are not metasyntactic variables, but simply customary names for variables used in programming examples just as x is commonly used as a variable name in math, e.g. when one writes f(x) = x2. There's nothing meta-syntactic there. The RFCs cited in RFC 3092 actually do use FOO as a metasyntactic variable, e.g. RFC 772 contains "For example, if MRSQ R was in effect and some MRCPs had been given, and a MAIL FROM: TO: was done, there would be no way to distinguish a failure reply for mailbox "FOO" from a global failure for all recipients specified." Tijfo098 (talk) 02:39, 25 November 2012 (UTC)

Title and scope
Since the edit summary got chopped in the last move, here's what I was thinking: I was planning to put a dab at Metasyntactic variable to prevent people from adding stuff unrelated to computing to this article (like placeholder names for people which it seems to have in the last section for some foreign languages) and rename the present article to Metasyntactic variable (computing). However, the dab would be just a two-line summary of this article, so it's probably not kosher. If we were to follow the DAB rules strictly, only the bastardized/reified meaning of "metasyntactic variable" as meaningless-word-usually-foo-used-in-any-context-but-typically-as-identifier would need a separate page, but that would be too confusing for the average computer (as opposed to logic) geek. So this page should remain a WP:CONCEPTDAB of sorts, now that I've clarified the lead. Tijfo098 (talk) 06:56, 26 November 2012 (UTC)

People as Metasyntactic Variables
The Talmud reference is exactly the same (from a metavar perspective) as Alice and Bob. Therefore, either both should be in the commonly used section (I would argue that these days Alice and Bob are more commonly/widely used than the Talmud) or both in See Also. Glennglazer (talk) 14:15, 25 September 2013 (UTC)

Metasyntactic Variables for Teaching
MIT & Stanford. Why an unusual string is useful. Epistemology. Xb2u7Zjzc32 (talk) 02:40, 6 March 2015 (UTC)

other languages
The list of words from other languages looks like a big mess. Most do not cite any references. Furthermore, it seems that most are unrelated to the subject of this article, and refer to words used in general as placeholder names.--128.183.2.230 (talk) 19:01, 20 August 2015 (UTC)


 * Propose a prune, if no one objects. --Cornellier (talk) 19:55, 26 December 2016 (UTC)

Supposed UK versions
I know the jargon file claims wibble, wobble etc are used instead of foo, bar, baz... in the UK but I've never come across this in practice. Given that this supposedly originates in Blackadder, maybe it was a 1980s thing before programmers from different countries started sharing code fragments online? Or maybe it was used by some contributors to the jargon file. It would be interesting to see if we can find another source for this that isn't just copying it from the jargon file - I couldn't find any in a brief search just now. In my experience most programmers nowadays don't use any of the words mentioned in this article, but those who do use the "American" foo, bar, baz etc.Eggybacon (talk) 12:47, 26 December 2016 (UTC)


 * Agree. Some might argue that the fact that we haven't heard them doesn't mean they don't exist.... but they should be ref'd or removed. --Cornellier (talk) 19:58, 26 December 2016 (UTC)


 * AIUI most of the "British" examples in the ESR Jargon File are from the Cambridge University computer community at some point in the late 1980s or early 1990s, except where noted otherwise.

External links modified (January 2018)
Hello fellow Wikipedians,

I have just modified one external link on Metasyntactic variable. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20091106004856/http://sunsite.ualberta.ca/Documentation/Gnu/texinfo-4.0/html_chapter/texinfo_10.html to http://sunsite.ualberta.ca/Documentation/Gnu/texinfo-4.0/html_chapter/texinfo_10.html

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 17:52, 26 January 2018 (UTC)

Metasyntactic functions
I think it's also worth adding that myFunction and myClass or myObject are used as meta syntaxes in function names and class names or object names too. myVar is also widely used. DavidNyan22467 (talk) 07:05, 7 January 2022 (UTC)