Код гольф

редактировать

Код гольф - это тип соревнования по развлекательному программированию, в котором участники стремятся получить как можно более короткий исходный код, реализующий определенный алгоритм. Игра в кодовый гольф известна как «скриптинг игры в гольф». Кодовые задачи и турниры по гольфу также могут быть названы в соответствии с используемым языком программирования (например, Perl гольф).

Содержание

  • 1 История
  • 2 Этимология
  • 3 Выделенные языки игры в гольф
  • 4 Типы кода гольфа
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки

История

Длина самой короткой программы, которая производит данный вывод (на любом фиксированном языке программирования), известна как колмогоровская сложность вывода, и ее математическое исследование относится к работе Андрей Колмогоров в 1963 году. Код гольф, однако, может быть более общим, чем этот, поскольку он часто определяет общее преобразование ввода-вывода, которое должно быть выполнено, а не запрашивать один вывод без ввода.

Хотя термин «кодовый гольф», по-видимому, впервые был использован в 1999 году с Perl, а затем популяризирован благодаря использованию Perl для написания программы, выполняющей шифрование RSA, известно, что подобное неформальное соревнование было популярно среди более ранних хакеров APL. Сложный характер агрессивной оптимизации для размера программы уже давно признан, например, в руководстве по кодированию 1962 года для компьютера GIER Regnecentralen отмечается, что «кодирование с наименьшим возможным количеством инструкций требует много времени. "и не рекомендует использовать его для практического программирования. Сегодня этот термин расширился до самых разных языков, что даже привело к созданию специальных языков для игры в гольф.

Этимология

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

Специальные языки для игры в гольф

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

Пример кода GolfScript для печати 1000 цифр pi :

; '' 6666, -2% {2 +.2 / @ * \ / 10.3 ?? 2 * +} * `1000 <~\;

Это напечатает строку, начинающуюся с «3141592653», за которой следует еще 990 цифр числа Пи.

На веб-сайтах Code Golf пользователи постоянно создают новые уникальные языки игры в гольф, чтобы выигрывать соревнования по гольфу. Другие популярные языки включают 05AB1E и Jelly.

Типы кода гольфа

Некоторые вопросы кода гольфа, такие как те, которые задаются на сайтах общего программирования, могут не требовать реализации на конкретном языке программирования. Однако это ограничивает стиль задач, которые могут создавать разработчики задач (например, ограничивая использование определенных языковых функций). Вдобавок создание таких «открытых» вопросов привело к разработке кодовых диалектов языка программирования для гольфа, таких как REBMU (диалект REBOL ). Как онлайн, так и живые соревнования также могут включать ограничения по времени.

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-15 13:39:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте