What is the history of the term "metasyntactic variable"?

Ingerman and Sattley 1960

I decided to pull on the thread of use of metasyntactic by Ingerman and Sattley in their November 1960 memo.

Knuth 1961

Searching for their names in relation to the language name ALGOL quickly revealed an abstract of a paper by Knuth titled ALGOL 60 confidential, written June 1961, which uses the word metalinguistic:

The ALGOL 60 Report, when first encountered, seems to describe a very complex language which will be difficult to learn. The “metalinguistic formulae” admirably serve the purpose of precisely specifying a language, but they are certainly not very readable for a beginner.

Following that lead and searching for the term "metalinguistic formulae" in relation to Knuth, we find Development, Assessment, and Reengineering of Language Descriptions by Alex Sellink and Chris Verhoef, undated but from its bibiliography no earlier than 1999:

In his paper on the syntax and semantics of the proposed international algebraic language, Backus [2] writes: `we shall need some metalinguistic conventions for characterizing various strings of symbols. To begin, we shall need metalinguistic formulae.' Then he introduced using an example what is now widely known as the Backus-Naur Formalism.

Backus 1959

And the light begins to dawn. Backus-Naur Form is the famous notation for describing computer languages. That is, it is a language for describing languages: a metalanguage. Note that the ALGOL Bulletin where we found the earliest use of metasyntactic is in fact compiled by Naur, who co-created the Backus-Naur form.

So, chasing down Sellink and Verhoef's reference [2], we find Backus' The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference., written 1959:

Syntax of IAL

In the description of IAL syntax which follows we shall need some metalinguistic conventions for characterizing various strings of symbols. To begin, we shall need metalinguistic formulas. Their interpretation is best explained by an example:

This use of metalinguistic formulas was enthusiastically quoted by Knuth, by Sellink and Verhoef, by several other authors and papers I encountered in this search, and the very wording is emphasized in the relevant Wikipedia article.

Similarly, the Wikipedia article quotes Naur, two years later, in 1961:

The meaning of syntactic formula may be further explained by saying that words enclosed in the brackets < >, like <ab>, denote classes whose members are sequences of basic symbols. Class designations of this kind are found in any description of a language. For describing ordinary natural languages designation like word, verb, noun, are used. Peter Naur (1961)."A COURSE ON ALGOL PROGRAMMING". p. 5, Note 1. Retrieved 26 March 2015.

So it seems it was Backus' use of metalinguistic that galavanized and motivated its use in the early computer industry, and likely inspired the related word metasyntactic used by Ingerman and Sattley, who moved in the same circles.

From "metasyntactic" to "metasyntactic variables"

I haven't yet been able to hunt down the first use of "metasyntactic variable" as applied to terms like "foo" and "bar" but it now seems inescapable that it developed out of the use of metalinguistic formulas as coined by Backus in 1959.

This coinage was adopted in the ALGOL community in the 1960s, to grew to the extent that the "variable" term was applied and understood more broadly in language design circles by no later than the late 1970s (as used by Galley and Pfister in the MDL Language book in the question; MDL was a derivative of LISP, another early programming language).

If I can find a more direct connection, or fill in a few more of the missing links, I will update this answer.


With a hyphen, I first see "meta-syntactic variable" being used in Software 71: proceedings of a conference sponsored by Software World and held at the University of Kent at Canterbury, July 1971:

Here 'TYPE' and "MODE" are meta-syntactic variables such as used in the definition of ALGOL 68 [reference 3].

R3 TYPE--> procedure | data-structure

Where reference 3 is VAN WYNGAARDEN, A., MAILLOUX, B.J. , PECK, J.E.L., and KOSTER, C.H.A., 'Draft report on the algorithmic language ALGOL 68', Amsterdam Mathematisch Centrum.

Without a hyphen "metasyntactic variable" is used in the May 1972 thesis of Michael Kelly Donegan, CODE GENERATION FOR NEW ON THE RICE RESEARCH COMPUTER. The word "NEW" is underlined in the title and refers to the computer language NEW.

VARIABLE assignation: reference destination, becomes symbol, value source.

The semantic interpretation of the assignation is embodied in the syntax by asserting that the destination is to be elaborated in reference mode and the source in value mode. VARIABLE is a metasyntactic variable whose rule is

VARIABLE: reference; value.

This asserts, in the case of assignations, that the value of an assignation may have two interpretations. The value in reference mode is the value of the destination, while in value mode it is the value of the source.

The plural form "metasyntactic variables" is used in the 1975 book The structure and design of programming languages

The term "syntactic variable" had been in use since about 1950 in the symbolic logic and computer fields.

See for example the 1959 Journal of the Association for Computing Machinery which has a footnote:

Note that the symbols p1, p2, etc. occur here as "syntactic variables." That is, they stand for expressions made up of our symbols.