Перейти до вмісту

Езотеричні мови програмування

Матеріал з Вікіпедії — вільної енциклопедії.

Езотери́чні мо́ви програмува́ння — вид мов програмування, не призначених для практичного застосування. Зразок комп'ютерного гумору.

Езотеричні мови придумуються для розваги, часто вони пародіюють «справжні» або є абсурдним втіленням «серйозних» концепцій програмування. Деякі езотеричні мови спеціально обмежені, (як, наприклад, мова HQ9+), інші — універсальні і володіють тюрінговою повнотою. Загальна властивість будь-якої езотеричної мови — текст програми на ній зрозумілий лише «обізнаному». Тоді як розробники «реальних» мов програмування прагнуть зробити синтаксис максимально зрозумілим, а програмування — зручним, творці езотеричних мов зазвичай розв'язують протилежну задачу.

В цілому такі мови позбавлені користі, проте програмування деякими з них є непоганим тренуванням. Езотеричні мови нерідко включають у список дозволених мов на конкурсах з програмування.

Історія

Найпершим і досі канонічним прикладом езотеричної мови програмування є INTERCAL[1], розроблений у 1972 році Доном Вудсом і Джеймсом М. Лайоном, які заявили, що їхнім наміром було створити мову програмування, не схожу на жодну з відомих їм.[2][3] Вона пародіювала елементи відомих на той час мов програмування, таких як Фортран, COBOL і мова асемблера.

Протягом багатьох років INTERCAL був представлений лише паперовими копіями посібника INTERCAL. Його відродження в 1990 році у вигляді реалізації на мові C під Unix стимулювало хвилю інтересу до навмисного проєктування езотеричних комп'ютерних мов.

У 1993 році Воутер ван Оортмерсен створив FALSE, невелику стек-орієнтовану мову програмування з синтаксисом, розробленим таким чином, щоб зробити код за своєю суттю затуманеним, заплутаним і нечитабельним. Її компілятор має розмір лише 1024 байти[4]. Це надихнуло Урбана Мюллера на створення ще меншої мови, сумнозвісної Brainfuck, яка складається лише з восьми розпізнаваних символів. Разом з Befunge Кріса Прессі (як FALSE, але з двовимірним покажчиком інструкцій), Brainfuck зараз є однією з найкраще підтримуваних езотеричних мов програмування, з канонічними прикладами мінімальних тарпітів Тьюрінга і безглуздо заплутаних мовних особливостей. Brainfuck відноситься до сімейства P′′ машин Тюрінга.

Список деяких езотеричних мов

Посилання

  1. Matthew Fuller, Software Studies, MIT Press, 2008
  2. Eric S. Raymond (1996). The New Hacker's Dictionary. MIT Press. с. 258. ISBN 978-0-262-68092-9.
  3. Woods, Donald R.; Lyon, James M. (1973), The INTERCAL Programming Language Reference Manual, Muppetlabs.com, архів оригіналу за 20 лютого 2009, процитовано 24 квітня 2009
  4. Interview with Wouter van Oortmerssen. esoteric.codes (англ.). 1 липня 2015. Процитовано 5 квітня 2023.