Метасинтаксична змінна, метазмінна — це конкретне слово або набір слів, визначений як змінна у інформатиці та, зокрема, в комп’ютерному програмуванні . Ці слова зазвичай зустрічаються у вихідному коді і призначені для зміни або заміни перед використанням у реальному світі. Слова foo і bar є хорошими прикладами, оскільки вони використовуються в понад 330 запитах цільової групи Internet Engineering для коментарів, документах, які визначають основні інтернет-технології, такі як HTTP (веб), TCP/IP та протоколи електронної пошти .

За математичною аналогією метасинтаксична змінна - це слово, яке є змінною для інших слів, так само як в алгебрі літери використовуються як змінні для чисел.

Метасинтаксичні змінні використовуються для іменування сутностей, таких як змінні, функції та команди, точна ідентичність яких не важлива, і служать лише для демонстрації концепції, яка корисна для навчання програмуванню.

Поширені метасинтаксичні змінні Оскільки англійська мова є основною мовою, або lingua franca, для більшості мов комп’ютерного програмування, ці змінні часто зустрічаються навіть у програмах і прикладах програм, написаних для іншої розмовної аудиторії.

Однак типові назви можуть залежати від субкультури та аудиторії, що склалася навколо даної мови програмування .

Загальне використання Метасинтаксичні змінні, які зазвичай використовуються в усіх мовах програмування, включають foobar, foo, bar, baz, qux, quux, quuz, corge, grault, garply, waldo, fred, plugh, xyzzy і thud ; кілька з цих слів є посиланнями на гру Colossal Cave Adventure . Wibble, wobble, wubble і flob також використовуються у Великій Британії. wibble. (n.d.). Jargon File 4.4.7. Retrieved February 23, 2010, from

Повне посилання можна знайти в книзі MIT Press під назвою The Hacker's Dictionary .

Японська мова

У японській мові (ほげ) і (ぴよ), а іншими поширеними словами та варіантами є (ふが), (ほげら) і (ほげほげ).   Зверніть увагу, що -ra є множинним закінченням в японській мові, а для множини також використовується дублювання. Походження як метасинтаксичної змінної невідоме, але вважається, що воно датується початком 1980-х років. メタ構文変数

Французька мова

У Франції широко використовується слово toto, з варіантами tata, titi, tutu як пов’язаними змінними. Одним із поширених джерел використання toto є посилання на стандартний символ, який використовується, щоб розповідати жарти з Tête à Toto .

Приклади використання

 С

У наступному прикладі ім'я функції foo і рядок імені змінної є метасинтаксичними змінними. Рядки, що починаються з "//", є коментарями.// The function named foo int foo(void) { // Declare the variable bar and set the value to 1 int bar = 1;

return bar; }С++

Прототипи функцій із прикладами різних механізмів передачі аргументів void Foo(Fruit bar); void Foo(Fruit* bar); void Foo(const Fruit& bar);Приклад, що показує можливості перевантаження функцій мови C++void Foo(int bar); void Foo(int bar, int baz); void Foo(int bar, int baz, int qux);

Python Spam, ham і eggs є основними метасинтаксичними змінними, які використовуються в мові програмування Python . Це посилання на відомий комедійний скетч « Спам », написаний Монті Пайтоном, епонімом мови. У наступному прикладі spam, ham і eggs є метасинтаксичними змінними, а рядки, що починаються на #, є коментарями.# Define a function named spam def spam():

# Define the variable ham ham = "Hello World!"

# Define the variable eggs eggs = 1

return

IETF Запити на коментарі І RFC IETF, і мови комп’ютерного програмування відображаються у вигляді простого тексту, що робить необхідним розрізняти метасинтаксичні змінні за умовами найменування, оскільки це не буде очевидно з контексту.

Ось приклад з офіційного документа IETF, що пояснює протоколи електронної пошти (з RFC 772 - цитується в RFC 3092 ): All is well; now the recipients can be specified.

S: MRCP TO:<Foo@Y> <CRLF> R: 200 OK

S: MRCP TO:<Raboof@Y> <CRLF> R: 553 No such user here

S: MRCP TO:<bar@Y> <CRLF> R: 200 OK

S: MRCP TO:<@Y,@X,fubar@Z> <CRLF> R: 200 OK

Note that the failure of "Raboof" has no effect on the storage of mail for "Foo", "bar" or the mail to be forwarded to "fubar@Z" through host "X". (Документація для texinfo підкреслює відмінність між метазмінними і простими змінними, які використовуються в мові програмування, задокументовані в якомусь файлі texinfo як: «Використовуйте команду @var для вказівки метасинтаксичних змінних. Метасинтаксична змінна — це щось, що означає інший фрагмент тексту. Наприклад, ви повинні використовувати метасинтаксичну змінну в документації функції для опису аргументів, які передаються цій функції. Не використовуйте @var для імен певних змінних у мовах програмування. Це конкретні назви програми, тому @code підходить для них.» )

Інший момент, відображений у наведеному вище прикладі, — це умова, що метазмінна має бути рівномірно замінена одним і тим же екземпляром у всіх його проявах у даній схемі. Це на відміну від нетермінальних символів у формальних граматиках, де нетермінальні символи праворуч від продукції можуть бути замінені різними екземплярами.

Приклад даних

SQL Зазвичай ім’я ACME використовується в прикладі баз даних SQL і як змінна для назви компанії з метою навчання. Термін «база даних ACME» зазвичай використовується для позначення навчального або прикладного набору даних бази даних, що використовуються виключно для навчання або тестування. ACME також зазвичай використовується в документації, яка показує приклади використання SQL, звичайну практику в багатьох навчальних текстах, а також технічній документації таких компаній, як Microsoft і Oracle .

Див. також

Аліса і Боб Джон Доу Виріб Вільні і зв'язані змінні Гаджет Екземплифікант Lorem ipsum Оказіоналізм (філологія) Смурф

Примітки

Посилання

Визначення метасинтаксичної змінної з прикладами. Приклади метасинтаксичних змінних, що використовуються в Commonwealth Hackish, наприклад вомбат . Змінна "foo" та інші дивацтва програмування