Изотерический язык программирования: различия между версиями

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


* Максимальное отличие от существующих языков программирования (INTERCAL, FALSE)
<graphviz>
* Максимальное сокращение синтаксиса ([[Whitespace]], Spoon, Ook!, COW)
digraph G {
* Многомерное представление программ (Befunge, Trefunge, 4DL)
layout=dot;
* Копирование собственного кода (Smith, Muriel)
node [shape="rect"];
* Максимальное усложнение написания программ (Malbolge, Alpaca)
graph[rankdir="LR"];
* Литературный синтаксис (Chef, Haifu, Shakespeare)
 
* Языки с нечеловеческой логикой (Var'aq)
"Эзотерический язык программирования" [URL="Изотерический язык программирования"] ;
 
"Эзотерический язык программирования"-> "Максимальное сокращение синтаксиса";
"Максимальное сокращение синтаксиса" -> "Whitespace", "COW", "Ook!", "Spoon";
 
"Эзотерический язык программирования"-> "Многомерное представление программ";
"Многомерное представление программ" -> "Befunge", "Trefunge", "4DL";
 
"Эзотерический язык программирования"-> "Копирование собственного кода";
"Копирование собственного кода" -> "Smith", "Muriel";
 
"Эзотерический язык программирования"-> "Максимальное усложнение написания программ";
"Максимальное усложнение написания программ" -> "Malbolge", "Alpaca";
 
"Эзотерический язык программирования"-> "Литературный синтаксис";
"Литературный синтаксис" -> "Chef", "Haifu", "Shakespeare";
 
"Эзотерический язык программирования"-> "Языки с нечеловеческой логикой";
"Языки с нечеловеческой логикой" -> "Var'aq";
 
"Эзотерический язык программирования"-> "Максимальное отличие от существующих языков программирования";
"Максимальное отличие от существующих языков программирования" -> "INTERCAL", "FALSE";
}
</graphviz>

Текущая версия на 22:25, 19 декабря 2024


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

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

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

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

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