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 sentences of a language ℒ
the symbols A and B are part of the metalanguage in which the statement about the object language ℒ is formulated.
The convention is 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.
Attempts to formalize the notion of metavariable result in some kind of type theory.
In computing one often needs to specify and document the syntax and semantics of a computer language, more or less formally. A term often used for metavariable in that area is "metasyntactic variable". Furthermore, because of the common practice in hacker culture to use nonsense words like "foo" as metavariables, the term "metasyntactic variable" has come to denote such words by themselves; for instance, "foo" is referred to as "the first metasyntactic variable" in the first edition of The Hacker's Dictionary.
- Hunter, p. 13.
- Shoenfield 2001, p. 7.
- Corcoran 2006, p. 220.
- Tennent 2002, pp. 36–37, 210.
- Masahiko Sato, Takafumi Sakurai, Yukiyoshi Kameyama, and Atsushi Igarashi. "Calculi of Meta-variables" in Computer Science Logic. 17th International Workshop CSL 2003. 12th Annual Conference of the EACSL. 8th Kurt Gödel Colloquium, KGC 2003, Vienna, Austria, August 25-30, 2003. Proceedings, Springer Lecture Notes in Computer Science 2803. ISBN 3-540-40801-0. pp. 484–497
- Corcoran, J. (2006). "Schemata: the Concept of Schema in the History of Logic". Bulletin of Symbolic Logic. 12: 219–240.
- Hunter, Geoffrey. Metalogic: An Introduction to the Metatheory of Standard First-Order Logic.
- Shoenfield, Joseph R. (2001) . Mathematical Logic (2nd ed.). A K Peters. ISBN 978-1-56881-135-2.
- Tennent, R. D. (2002). Specifying Software: A Hands-On Introduction. Cambridge University Press. ISBN 978-0-521-00401-5.