Метапеременная
Метасинтаксическая переменная, метапереме́нные[1] — слова-заменители, которые применяются в технических текстах для обозначения чего-либо, что может стоять на их месте. Метапеременные часто используются в программировании.
Обычно используют осмысленные имена метапеременных. Например, описание команды переименования файла может выглядеть следующим образом:
- mv source target
Здесь source и target — метапеременные, обозначающие имя файла до (source) и после (target) переименования. Однако часто используются и слова, не несущие смысловой нагрузки, foo является типичным примером.
Использование метапеременных в тексте аналогично использованию в математике (иногда и в других областях знаний) букв x, y и z для неизвестных переменных и a, b и c для неизвестных констант. Метапеременные можно рассматривать как переменные метаязыка, используемого, например, для обсуждения программного кода, описания алгоритма и т. п.
Часто используемые метапеременные
Искусственные слова
- foo часто используется как первая метапеременная для обозначения неопределённого (пока) объекта: функции, процесса, и т. п. Этимология этого слова также раскрывается в первоапрельском RFC 3092.
- bar используется для ссылки на второй неопределённый объект в обсуждении. Например, «функция foo вызывает функцию bar» или «функция foo(bar)».
- часто применяется метапеременная foobar, имя которой образовано как объединение foo и bar.
- baz — каноническая третья метапеременная, после foo и bar.
- quux — каноническая четвёртая метапеременная. Иногда используется вариант qux для четвёртой метапеременной и quux, quuux, quuuux и т. д. — для следующих.
- bat — используется некоторыми программистами вместо quux.
- xyzzy и plugh — волшебные слова в старой текстовой игре ADVENT.
- qwe, asd, zxc — набор символов для ввода информации в текстовые поля для быстрого заполнения (буквы в этих словах находятся рядом в раскладке QWERTY).
Английские слова
- spam и eggs — канонические метапеременные, используемые в языке программирования Python. Это отсылка к известному скетчу «Spam» комик-группы «Монти Пайтон».
- needle (иголка) и haystack (стог сена) могут использоваться в примерах, объясняющих синтаксис команд или функций поиска; благодаря идиоме «искать иголку в стоге сена», становится понятно, что в чём ищется.
Другие примеры
В качестве метапеременных используются: test, mum, thud, beekeeper, hoge, corge, grault, garply, waldo, kalaa, puppu, dothestuff, temp, var, sub.
Часто используемые мета-числа
- 42 часто используется как инициализатор для переменных, когда конкретное значение не важно. Число взято из произведения Дугласа Адамса «Путеводитель для путешествующих автостопом по галактике», в котором оно фигурирует как ответ на главный вопрос жизни, вселенной и всего такого.
- другие числа: 23, 47, 69, 666, 0815, 1337, 4711, DEADBEEF16.
Наличие таких чисел в выводе может указывать на логическую ошибку в программе — неинициализированную переменную.
Имена людей
- J. Random (англ. random — случайный) и Ned Baker используются для обозначения любого человека или какого-то человека из определённой группы, например «J. Random User».
- Имена Алиса (Alice) и Боб (Bob) используются, когда идёт речь о взаимодействии двух человек, например при описании применения криптографических протоколов. В качестве продолжения ряда могут использоваться Carol, Dave и т. д. Для некоторых ролей используются традиционные имена, например, Ева (Eve) — это пассивный взломщик, который может перехватывать данные, но не может их изменять, Мэллори (Mallory) — это активный взломщик, Трент (Trent) — нейтральный арбитр.
- Вася Пупкин — используется в русскоязычных текстах.
- Джон Доу (англ. John Doe) — обозначение непоименованной мужской стороны в британском судебном процессе. Для прочих лиц разного пола и возраста используются аналогичные имена на букву J.
Доменные имена
Согласно RFC 2606, в качестве метапеременных для обозначения доменных имён зарезервирован домен верхнего уровня .example и домены второго уровня example.com, example.org и example.net.
Организации
- «Рога и копыта»
- ООО «Вектор»
- ООО «Ромашка»
Множество
- Неопределённый артикль (напр. англ. a, an, нем. ein(e)) указывает на то, что слово обозначает какой-то предмет, не выделяя его из числа других таких же («один из», «какой-то», «любой»)
- Переменная
Информатика
- Фича (не имеет ничего общего с «фишка», так как «фича» это feature, то есть возможность/функциональность), фишка (общее сленговое название необычных признаков какого-либо явления)
Культура
- To Aru Majutsu no Index (и телесериал «Некий научный Рейлган»)
- Ку (все слова (исключая обсценные) в фильме Кин-дза-дза)
География
В разделе не хватает ссылок на источники (см. также рекомендации по поиску). |
- Мухосранск (Экземплификант)
- Тьмутаракань
- Кудыкины горы
- У черта на куличках (см. Церковь Всех Святых на Кулишках)
- Город N, Н-ск (энск))
См. также
- Имя нарицательное
- Имя собственное
- Эпоним
- Мем
- Этимология
- В рамках пространства имён Википедии: User:Example
- В англоязычной юриспруденции: Джон Доу
- Идеологема
Примечания
- ↑ метапереме́нная (недоступная ссылка). Русский орфографический словарь. Институт русского языка им. В. В. Виноградова РАН (2005). Дата обращения: 12 октября 2013. Архивировано 22 октября 2013 года.
Литература
- METASYNTACTIC VARIABLE . Jargon File English vocabulary (2012). — «A name used in examples and understood to stand for whatever thing is under discussion, or any random member of a class of things under discussion.». Дата обращения: 12 октября 2013. Архивировано 22 августа 2013 года.
- А.А. Вылиток. Металингвистические формулы и синтаксические диаграммы. — М.: Издательский отдел Факультета ВМ К МГУ им. М.В. Ломоно сова, 20 12. — 24 с. — ISBN 978-5-89 407-484-9. Архивная копия от 14 октября 2013 на Wayback Machine
- RFC 3092 Etymology of «Foo»
Approximately 212 RFCs, or about 7 % of RFCs issued so far, starting
with [RFC269], contain the terms `foo', `bar', or `foobar' used as a metasyntactic variable without any proper explanation or definition. This may seem trivial, but a number of newcomers, especially if English is not their native language, have had problems in understanding the origin of those terms. This document rectifies
that deficiency.