Термины foobar ( / ˈ f uː b ɑːr / ), foo , bar , baz, qux, quux , [1] и другие используются в качестве метасинтаксических переменных и имен-заполнителей в компьютерном программировании или компьютерной документации. [2] Они использовались для наименования таких сущностей, как переменные , функции и команды , точная идентичность которых не важна и служит только для демонстрации концепции. Руководство по стилю для документации разработчиков Google рекомендует не использовать их в качестве примеров имен проектов, поскольку они неясны и могут вызвать путаницу. [3]
Вполне возможно, что foobar — это шутливая отсылка к военному сленгу времен Второй мировой войны FUBAR ( Fucked Up Beyond All Recognition) . [4]
Однако следует отметить, что слово foopaw было на диалекте Нантакета словом, обозначающим некачественную работу, очевидно, произошедшим от французского faux pas [5] , цитируемого из книги Уильяма Х. Мэйси «Вот она и дует — судовой журнал Аретузы» (1877).
Согласно RFC от Internet Engineering Task Force , слово FOO возникло как бессмысленное слово , и его самое раннее задокументированное использование было в комиксе Smokey Stover Билла Холмана 1930-х годов . [6] Холман утверждает, что он использовал это слово, потому что увидел его на нижней части нефритовой китайской статуэтки в Чайнатауне Сан-Франциско , предположительно означавшей «удачу». [7] Если это правда, то это, по-видимому, связано с китайским словом fu («福», иногда транслитерируемым foo , как в foo dog ), которое может означать счастье или благословение . [8]
Первое известное использование терминов в печати в контексте программирования появляется в издании MIT's Tech Engineering News 1965 года . [9] Использование foo в контексте программирования обычно приписывается Tech Model Railroad Club (TMRC) MIT с 1960 года . [ 2] В сложной системе моделей были аварийные выключатели, расположенные во многих местах по всей комнате, которые можно было перевести в действие, если должно было произойти что-то нежелательное, например, поезд, движущийся на полной мощности к препятствию. Еще одной особенностью системы были цифровые часы на диспетчерской панели. Когда кто-то нажимал на аварийный выключатель, часы останавливались, а дисплей заменялся словом «FOO»; в TMRC аварийные выключатели, таким образом, называются «переключателями Foo». Из-за этого запись в Словаре языка TMRC 1959 года была примерно такой: «FOO: Первый слог неверно процитированной священной фразы песнопения „ foo mane padme hum “». Наша первая обязанность — поддерживать вращение счетчиков foo». [10] В одной книге [ какой? ], описывающей вагончик MIT, описываются две кнопки у двери с надписями «foo» и «bar». Это были кнопки общего назначения, и их часто перепрофилировали для какой-нибудь забавной идеи, которая приходила в голову хакерам MIT в то время, отсюда и принятие foo и bar в качестве имен переменных общего назначения. В записи в Сокращенном словаре языка TMRC говорится: [11]
Multiflush: кнопка остановки всех поездов. Лучшее, что есть после красной кнопки двери. Также называется FOO. При использовании отображает «FOO» на часах.
Foobar использовался как имя переменной в коде Fortran Colossal Cave Adventure (версия Crowther and Woods 1977 года). Переменная FOOBAR использовалась для хранения прогресса игрока в произнесении магической фразы "Fee Fie Foe Foo", фразы из исторического четверостишия в классической английской сказке Jack and the Beanstalk . Intel также использовала термин foo в своей программной документации в 1978 году. [12]
Убедитесь, что имя применимо к среде пользователя. Не используйте неясные термины, такие как foo, bar и baz.
Кроме того, можно выполнить поиск эффективного адреса; например, если была использована инструкция, такая как «add 1 foo», указывающая косвенную адресацию через местоположение «foo», а местоположение «foo» содержало адрес местоположения «foobar», то эффективный поиск слова «foobar» найдет местоположение «foo» и местоположение, содержащее инструкцию «add».