Изотерический язык программирования

Материал из Поле цифровой дидактики


Описание Язык программирования, разработанный для исследования границ возможностей разработки языков программирования, для доказательства потенциально возможной реализации некой идеи, в качестве произведения программного искусства или в качестве шутки
Область знаний Информатика
Авторы
Поясняющее видео
Близкие понятия
Среды и средства для освоения понятия

Многие эзотерические языки придумываются для развлечения, часто они пародируют «настоящие» или являются абсурдным воплощением «серьёзных» концепций программирования. Некоторые эзотерические языки нарочно ограничены (как, например, язык HQ9+), другие являются тьюринг-полными, то есть языками общего назначения. Общее свойство, присущее любому эзотерическому языку — текст программы на нём понятен лишь «посвящённому» либо непонятен вообще, потому что для составления программы нужно написать программу на обычном языке программирования. В то время как разработчики «реальных» языков программирования стараются сделать синтаксис максимально понятным, а программирование — удобным, создатели эзотерических языков ставят перед собой другие задачи.

На практике такие языки, как правило, бесполезны, однако программирование на некоторых из них является неплохой тренировкой. Эзотерические языки нередко включают в список разрешённых языков на конкурсах по программированию.

Вольная классификация

Большинство эзотерических языков программирования можно отнести к определенным группам, в зависимости от целей и идей конкретного языка

  • Максимальное отличие от существующих языков программирования (INTERCAL, FALSE)
  • Максимальное сокращение синтаксиса (Whitespace, Spoon, Ook!, COW)
  • Многомерное представление программ (Befunge, Trefunge, 4DL)
  • Копирование собственного кода (Smith, Muriel)
  • Максимальное усложнение написания программ (Malbolge, Alpaca)
  • Литературный синтаксис (Chef, Haifu, Shakespeare)
  • Языки с нечеловеческой логикой (Var'aq)