For faster navigation, this Iframe is preloading the Wikiwand page for Езотеричні мови програмування.

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

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

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

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

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

Історія

[ред. | ред. код]

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

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

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

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

[ред. | ред. код]
  • INTERCAL — подібні
  • Фунгеоїдні
    • Befunge (двомірний)
    • Befunge-93 (двомірний не повний за Тюрінгом)
    • Unefunge (одновимірний)
    • Trefunge (тривимірний)
    • 4DL (чотиривимірний)
    • Piet (з колірним кодуванням)
  • Мови, створені для перевірки математичних концепцій
  • Засновані на копіюванні власного коду
    • Smetana
    • SMITH
    • Muriel
  • Мови — «Чорні ящики»
  • З літературним синтаксисом
  • З нелюдською логікою
  • Мови, що створювалися для інших цілей, але такі, що часто наводяться в списках езотеричних
    • APL
    • SNOBOL
    • Quake C
    • MC++
    • Автокод «ІНЖЕНЕР»(для комп'ютерів «Мінськ»)
  • Інші
    • Beatnik
    • СВН — «Програмування знизу до верху навскоси»
    • emoticon
    • FRACTRAN — запропонована Джоном Конвеєм мова програмування, в якій програма має вигляд списку додатних дробів.
    • GOTO++
    • HQ9+
    • iot
    • Lazy K
    • Lithp
    • paranoid
    • reMorse
    • SARTRE
    • SIMPLE
    • smilescript
    • Spaghetti
    • Whenever

Посилання

[ред. | ред. код]
  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.
{{bottomLinkPreText}} {{bottomLinkText}}
Езотеричні мови програмування
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?