Zmienne metasyntaktyczne to zmienne, których wartości są rozumiane jako fragmenty składni (ewentualnie nazwy innych zmiennych, które są składnią). Występują w formułach, które działają na składni, podobnie jak meta-składnia.
Rozważmy na przykład S V O
(obiekt czasownika podmiotowego) wyrażenie wskazujące na podstawową kolejność słów w pewnym języku ludzkim. Te trzy litery są zmiennymi meta-syntaktycznymi. Każdy z nich oznacza jakąś składnię. Temat zdania może być złożonym wyrażeniem rzeczownikowym i tak dalej. Ponadto litery te są wybierane w sposób znaczący w dziedzinie problematyki językowej: S
skrót od podmiotu i tak dalej.
foo
i bar
można je uznać za metasyntaktyczne w tym sensie, że służą jako symbole zastępcze dla prawdziwych nazwisk, które mają zostać wymyślone przez użytkownika. Te szczególne nazwy mają znaczenie w dziedzinie problematycznej polegającej na pisaniu przykładów kodu w dokumentacji komputerowej, gdzie są natychmiast rozpoznawalne, jak starzy znajomi. Paradoksalnie foo
wyraża to: „Jestem sławny, że nie mam sensu. Gdziekolwiek mnie zobaczysz, zamień mnie na coś, co ma jedno!”, I to jest jego znaczenie.
Rozumie się również, że w przypadku gdy oba pojawiają się foo
i bar
, użytkownik musi zastąpić odrębne symbole, a gdy foo
pojawia się więcej niż jeden raz w tym samym przykładzie, wszystkie wystąpienia muszą być konsekwentnie zastępowane tym samym identyfikatorem.
foo
i bar
działają, o ile nie kolidują z niczym w języku komputerowym, takimi jak wbudowane polecenia, słowa kluczowe lub nazwy ważnych funkcji lub zmiennych bibliotecznych. Jeśli tak się stanie, poziomy składni i meta-składni stają się mylące. Jeśli projektujesz nowy język, musisz unikać wprowadzania foo
i używania bar
znaczących identyfikatorów w tym języku.
Słowa foo i bar mają etymologię, ale ta etymologia nie jest związana z ich znaczeniem w dokumentacji komputerowej.