Езотеричні мови програмування
Езотери́чні мо́ви програмува́ння — вид мов програмування, не призначених для практичного застосування. Зразок комп'ютерного гумору.
Езотеричні мови придумуються для розваги, часто вони пародіюють «справжні» або є абсурдним втіленням «серйозних» концепцій програмування. Деякі езотеричні мови спеціально обмежені, (як, наприклад, мова HQ9+), інші — універсальні і володіють тюрінговою повнотою. Загальна властивість будь-якої езотеричної мови — текст програми на ній зрозумілий лише «обізнаному». Тоді як розробники «реальних» мов програмування прагнуть зробити синтаксис максимально зрозумілим, а програмування — зручним, творці езотеричних мов зазвичай розв'язують протилежну задачу.
В цілому такі мови позбавлені користі, проте програмування деякими з них є непоганим тренуванням на кшталт вирішення логічних головоломок або ігор розуму. Езотеричні мови нерідко включають у список дозволених мов на конкурсах з програмування.
Найпершим і досі канонічним прикладом езотеричної мови програмування є INTERCAL[1], розроблений у 1972 році Доном Вудсом і Джеймсом М. Лайоном, які заявили, що їхнім наміром було створити мову програмування, не схожу на жодну з відомих їм.[2][3] Вона пародіювала елементи відомих на той час мов програмування, таких як Фортран, COBOL і мова асемблера.
Протягом багатьох років INTERCAL був представлений лише паперовими копіями посібника INTERCAL. Його відродження в 1990 році у вигляді реалізації на мові C під Unix стимулювало хвилю інтересу до навмисного проєктування езотеричних комп'ютерних мов.
У 1993 році Воутер ван Оортмерсен створив FALSE, невелику стек-орієнтовану мову програмування з синтаксисом, розробленим таким чином, щоб зробити код за своєю суттю затуманеним, заплутаним і нечитабельним. Її компілятор має розмір лише 1024 байти[4]. Це надихнуло Урбана Мюллера на створення ще меншої мови, сумнозвісної Brainfuck, яка складається лише з восьми розпізнаваних символів. Разом з Befunge Кріса Прессі (як FALSE, але з двовимірним покажчиком інструкцій), Brainfuck зараз є однією з найкраще підтримуваних езотеричних мов програмування, з канонічними прикладами мінімальних тарпітів Тьюрінга і безглуздо заплутаних мовних особливостей. Brainfuck відноситься до сімейства P′′ машин Тюрінга.
- INTERCAL — подібні
- INTERCAL
- FALSE
- Brainfuck
- Ook! (мова орангутанів)
- COW (мова парнокопитних)
- Brainfork (багатозадачний Brainfuck)
- F*ckF*ck
- DoubleFuck
- Whitespace
- Фунгеоїдні
- Befunge (двомірний)
- Befunge-93 (двомірний не повний за Тюрінгом)
- Unefunge (одновимірний)
- Trefunge (тривимірний)
- 4DL (чотиривимірний)
- Piet (з колірним кодуванням)
- Мови, створені для перевірки математичних концепцій
- Засновані на копіюванні власного коду
- Мови — «Чорні ящики»
- З літературним синтаксисом
- Chef (рецепти)
- Shakespeare (Шекспірівські п'єси)
- Haifu (вірші хокку)
- З нелюдською логікою
- var'aq (логіка раси Клінгонів з серіалу «Star Trek»)
- Мови, що створювалися для інших цілей, але такі, що часто наводяться в списках езотеричних
- APL
- SNOBOL
- Quake C
- MC++
- Автокод «ІНЖЕНЕР»(для комп'ютерів «Мінськ»)
- Інші
- Езотеричні мови програмування. Як це — писати код, що не має практичного застосування
- Danger Mouse [Архівовано 7 жовтня 2006 у Wayback Machine.]
- Огляд ЕМП в журналі «Компьютерра»
- Повніша версія попередньої статті на rsdn.ru [Архівовано 26 жовтня 2006 у Wayback Machine.]
- Esoteric
- Istoriya — Езотерична мова програмування, яка використовує факти та термінологію з історії України.
- Вікі езотеричних мов програмування
- ↑ Matthew Fuller, Software Studies, MIT Press, 2008
- ↑ Eric S. Raymond (1996). The New Hacker's Dictionary. MIT Press. с. 258. ISBN 978-0-262-68092-9.
- ↑ Woods, Donald R.; Lyon, James M. (1973), The INTERCAL Programming Language Reference Manual, Muppetlabs.com, архів оригіналу за 20 лютого 2009, процитовано 24 квітня 2009
- ↑ Interview with Wouter van Oortmerssen. esoteric.codes (англ.). 1 липня 2015. Процитовано 5 квітня 2023.