Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Метапеременное это конкретное слово или набор слов , определенные в качестве заполнителя в компьютерной науке и , в частности компьютерных программ . Эти слова обычно встречаются в исходном коде и предназначены для изменения или замены перед использованием в реальном мире. Слова foo и bar являются хорошими примерами, поскольку они используются в более чем 330 запросах инженерной группы Интернета на комментарии , документах, которые определяют основополагающие интернет-технологии, такие как HTTP (веб-сайты), TCP / IP и протоколы электронной почты . [1] [2]

По математической аналогии метасинтаксическая переменная - это слово, которое является переменной для других слов, точно так же, как в алгебре буквы используются как переменные для чисел. [1]

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

Общие метасинтаксические переменные [ править ]

Поскольку английский является основным языком или лингва-франка большинства языков программирования, эти переменные часто встречаются даже в программах и примерах программ, написанных для других языковых аудиторий.

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

Общее использование [ править ]

Метапеременная обычно используемые во всех языках программирования включают в Foobar , Foo , бар , Баз , QUX , quux , quuz , corge , grault , garply , Вальдо , Фредом , plugh , XYZZY , и глухой звук ; некоторые из этих слов являются отсылками к игре Colossal Cave Adventure . [1] [3] Колебание , колебание , колебание и колебаниетакже используются в Великобритании. [4]

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

Японский [ править ]

В японском языке обычно используются слова hoge (ほ げ) [5] и piyo (ぴ よ), а другие общие слова и варианты - это фуга (ふ が), hogera (ほ げ ら) и hogehoge (ほ げ ほ げ). [6] [ круговая ссылка ] Обратите внимание, что -ra является окончанием множественного числа в японском языке, и дублирование также используется для множественного числа. Происхождение хоге как метасинтаксической переменной неизвестно, но считается, что оно датируется началом 1980-х годов. [6]

Французский [ править ]

Во Франции широко используется слово toto с вариантами tata , titi , tutu в качестве связанных заполнителей. Один из часто упоминаемых источников использования toto - это отсылка к стандартному персонажу, который используется для анекдотов с помощью Tête à Toto .

Примеры использования [ править ]

Снимок экрана метасинтаксической переменной FOO, назначенной и отображаемой в интерактивном сеансе оболочки.

C [ править ]

В следующем примере имя функции foo и строка имени переменной являются метасинтаксическими переменными. Строки, начинающиеся с //, являются комментариями.

// Функция с именем foo int  foo ( void ) {  // Объявить переменную bar и установить значение 1  int  bar  =  1 ; возвратный  бар ; }

C ++ [ править ]

Прототипы функций с примерами различных механизмов передачи аргументов : [7]

void  Foo ( фруктовый  батончик ); 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 [ править ]

Спам , ветчина и яйца - основные метасинтаксические переменные, используемые в языке программирования Python . [8] Это отсылка к известной комедии « Спам » Монти Пайтон , эпониму языка. [9] В следующем примере спам , ветчина и яйца являются метасинтаксическими переменными, а строки, начинающиеся с #, являются комментариями.

# Определите функцию с именем spam def  spam (): # Определите переменную ham  ham  =  "Hello World!" # Определяем переменную яйца  egg  =  1 возвращаться

Запросы IETF на комментарии [ править ]

И RFC IETF, и языки компьютерного программирования представлены в виде простого текста , поэтому необходимо различать метасинтаксические переменные по соглашению об именах, поскольку это не будет очевидно из контекста.

Вот пример из официального документа IETF, объясняющего протоколы электронной почты (из RFC 772 - цитируется в RFC 3092):

Все хорошо; теперь можно указать получателей. S: MRCP Кому: <Foo @ Y> <CRLF> R: 200 ОК S: MRCP Кому: <Raboof @ Y> <CRLF> R: 553 Такого пользователя здесь нет S: MRCP К: <bar @ Y> <CRLF> R: 200 ОК S: MRCP TO: <@ Y, @ X, fubar @ Z> <CRLF> R: 200 ОК Обратите внимание, что отказ "Raboof" не влияет на хранение письмо для "Foo", "bar" или письмо, которое будет отправлено на "fubar @ Z" через хост «X».

(В документации для texinfo подчеркивается различие между метапеременными и простыми переменными, используемыми в языке программирования, которые документируются в каком-либо файле texinfo следующим образом: «Используйте команду @var для обозначения метасинтаксических переменных. Метасинтаксическая переменная - это то, что обозначает другой фрагмент текста. Например, вы должны использовать метасинтаксическую переменную в документации функции для описания аргументов, которые передаются этой функции. Не используйте @var для имен конкретных переменных в языках программирования. Это конкретные имена из программы, поэтому @code для них правильный. " [10] )

Другой момент, отраженный в приведенном выше примере, - это соглашение о том, что метапеременная должна быть равномерно заменена одним и тем же экземпляром во всех его проявлениях в данной схеме. Это контрастирует с нетерминальными символами в формальных грамматиках, где нетерминалы справа от продукции могут быть заменены различными экземплярами. [11]

Пример данных [ править ]

SQL [ править ]

Обычно имя ACME используется в примерах баз данных SQL и в качестве названия компании-заполнителя с целью обучения. Термин «База данных ACME» обычно используется для обозначения набора данных базы данных для обучения или только для примера, используемого исключительно для обучения или тестирования. ACME также часто используется в документации, которая показывает примеры использования SQL, что является обычной практикой во многих учебных текстах, а также в технической документации таких компаний, как Microsoft и Oracle . [12] [13] [14]

См. Также [ править ]

  • Метапеременная (логика)
  • xyzzy
  • Алиса и Боб
  • Джон Доу
  • Fnord
  • Свободные переменные и связанные переменные
  • Гаджет
  • Lorem ipsum
  • Одноразовое слово
  • Имя заполнителя
  • Виджет
  • Смурф

Ссылки [ править ]

  1. ^ a b c Истлейк 3-й, Дональд Э .; Манрос, Карл-Уно; Раймонд, Эрик С. Этимология «Foo» . DOI : 10,17487 / RFC3092 . RFC 3092 .
  2. ^ "Получение документа" . Редактор RFC .
  3. Лафлин, Стюарт (18 ноября 2016 г.). «Метасинтаксическая переменная» . программирование @ ProgClub (Список рассылки) . Проверено 18 ноября, 2016 .
  4. ^ колебание . (nd). Файл жаргона 4.4.7. Получено 23 февраля 2010 г. из [1]
  5. ^ "hoge の 意味 ・ 使 い 方 - 英 和 辞典 WEBLIO 辞書" . ejje.weblio.jp .
  6. ^ a b メ タ 構 文 変 数 (на японском языке)
  7. ^ Монган, Джон; Киндлер, Ной; Жигер, Эрик (2012). Разоблаченные собеседования по программированию: секреты вашей следующей работы . Джон Вили и сыновья. п. 242. ISBN. 978-1-118-28720-0.
  8. ^ «Учебное пособие по Python - документация по Python 3.8.1» . docs.python.org .
  9. ^ Общие вопросы по Python
  10. ^ «Обозначение слов и фраз» . Texinfo 4.0. Формат документации GNU . Архивировано из оригинала на 2009-11-06 . Проверено 25 ноября 2012 .
  11. ^ RD Tennent (2002). Определение программного обеспечения: практическое введение . Издательство Кембриджского университета. С. 36–37 и 210. ISBN 978-0-521-00401-5.
  12. ^ Кригель, Алекс (2008). Библия SQL . Индианаполис, Индиана: Wiley. ISBN 978-0-470-22906-4. OCLC  402446308 .
  13. ^ Руэль, Крис (2014). Oracle 12c для чайников (на датском). Хобокен, Нью-Джерси: Джон Уайли и сыновья. ISBN 978-1-118-74531-1. OCLC  870334544 .
  14. ^ https://docs.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/work-with-data-in-asp-net-core-apps

Внешние ссылки [ править ]

  • Определение метасинтаксической переменной с примерами.
  • Примеры метасинтаксических переменных, используемых в Commonwealth Hackish , таких как вомбат .
  • Переменная "foo" и другие странности программирования