Езотеричні мови програмування: відмінності між версіями
мНемає опису редагування |
Vox (обговорення | внесок) м Редагування користувача 95.132.115.27 (обговорення) відкинуті до версії користувача Surikoff |
||
| (Не показані 13 проміжних версій 3 користувачів) | |||
| Рядок 1: | Рядок 1: | ||
'''Езотерична мова | {{Антилулзи}} | ||
'''Езотерична мова прогромування''' — мова, створена для [[Лулз|лулзів]], в якості пародії на звичні мови програмування ([[Сі]], [[Pascal]], [[Java]]). У цій статті зібрані основні езотеричні мови програмування. | |||
== HQ9+ == | == HQ9+ == | ||
Як відомо, перші задачі, які пропонють вирішити [[бидлокодер]]у на новій для нього мові, це: | |||
* 1. Написати «Hello, world!!!» (самий базовий примітив) | |||
* 2. Вивести пісеньку про 99 пляшок пива (цикл) | |||
* 3. Вивести код програми (вища ієрархія для [[бидло|бидла]]) | |||
Щоби спростити цей шлях до підвищення свого [[ЧСВ]], пан Кліф Біффл створив чудову мову, яка має наступні інструкції: | |||
* H — виведе на екран «Hello, world!!!» | * H — виведе на екран «Hello, world!!!» | ||
* Q — квайн (виводить свій код). | * Q — квайн (виводить свій код). | ||
* 9 — виведе пісеньку про 99 пляшок пива. | * 9 — виведе пісеньку про 99 пляшок пива. | ||
* + | І додатково, щоби мова стала більш суворою, команду: | ||
* + - інкрементує лічильник, який не можна ніяк використовувати. | |||
Неймовірно, але факт - назва мови складається із усіх своїх інструкцій. Нажаль, вона не є повною за Тюрінгом, тому [[Crysis]] на ній не напишеш.<br/> | |||
Такий чудовий засіб програмування не лишився без уваги. Щоби навчити [[бидло]] ООП, Девід Морган-Мар створив об’єктно-орієнтований діалект HQ9++, який командою ++ не тільки двічі інкрементує лічильник, але й створює новий об’єкт. Доступу до цього об’єкту нема, в цілях приховування інформації. | |||
===Приклад інтерпретатора=== | ===Приклад інтерпретатора=== | ||
На Пайтоні: | На [[Python|Пайтоні]]: | ||
<pre> | <pre> | ||
code = raw_input(">>") | code = raw_input(">>") | ||
| Рядок 27: | Рядок 34: | ||
else: | else: | ||
print "%d bottles of beer on the wall.\n"%(i-1)</pre> | print "%d bottles of beer on the wall.\n"%(i-1)</pre> | ||
===Посилання=== | ===Посилання=== | ||
* [http://www.almnet.de/esolang/hq9plus.php Онлайн інтерпретатор] | * [http://www.almnet.de/esolang/hq9plus.php Онлайн інтерпретатор] | ||
| Рядок 36: | Рядок 44: | ||
* FORGET | * FORGET | ||
* PLEASE ABSTAIN FROM CALCULATING | * PLEASE ABSTAIN FROM CALCULATING | ||
* <s>SUCK THAT DICK</s> | |||
===Приклади коду=== | ===Приклади коду=== | ||
<pre>DO ,1 <- #13 | <pre>DO ,1 <- #13 | ||
| Рядок 53: | Рядок 62: | ||
PLEASE READ OUT ,1 | PLEASE READ OUT ,1 | ||
PLEASE GIVE UP</pre> | PLEASE GIVE UP</pre> | ||
Отака хуйня, малята. | |||
===Посилання=== | ===Посилання=== | ||
* [http://www.catb.org/~esr/intercal/ Хоумпаг] | * [http://www.catb.org/~esr/intercal/ Хоумпаг] | ||
== Brainfuck == | == Brainfuck == | ||
'''Brainfuck''' ''(англ. Мізкотрах)'' — найвідоміша езотерична мова програмування, відома тим, що хоч і має всього 8 команд, є повною по | '''Brainfuck''' ''(англ. Мізкотрах)'' — найвідоміша езотерична мова програмування, відома тим, що хоч і має всього 8 команд, є повною по Тюрінгу, а це значить, що на ній можна написати [[Crysis]]. Також відома своєю назвою. Взагалі-то, 8 команд це навіть трохи забагато для забезпечення тюрінгової повноти. Але ж в нас все для зручності програміста! Одна з небагатьох езотеричних мов, яка має практичне застосування. Ні-ні, на ній не пишуть ні серверні аплікації, ні драйвери пристроїв. Brainfuck - дуже зручний для перевірки деяких математичних задач, чи можуть вони бути розв’язані машиною. | ||
===Команди=== | ===Команди=== | ||
{| align="center" class="standard" border="2" cellpadding="2" | {| align="center" class="standard" border="2" cellpadding="2" | ||
| Рядок 96: | Рядок 106: | ||
------.--------.>+.>. | ------.--------.>+.>. | ||
</pre> | </pre> | ||
Деякі люди на Брейнфаках пишуть навіть [http://habrahabr.ru/blogs/crazydev/95126/ морський бій]. | |||
===Посилання=== | ===Посилання=== | ||
* [http://bf-fan.coolpage.biz/ Трохи більше про БрейнФак] | * [http://bf-fan.coolpage.biz/ Трохи більше про БрейнФак] | ||
| Рядок 101: | Рядок 112: | ||
== Befunge == | == Befunge == | ||
'''Befunge''' — оригінальна езотерична мова програмування, програми на якій записуються як таблиця, по якій лазить інтерпретатор. | '''Befunge''' — оригінальна езотерична мова програмування, програми на якій записуються як таблиця, по якій лазить [[інтерпретатор]]. | ||
===Приклади=== | ===Приклади=== | ||
Hello, world: | Hello, world: | ||
| Рядок 134: | Рядок 145: | ||
>^ | >^ | ||
</pre> | </pre> | ||
===Посилання=== | |||
*[http://esoteric.voxelperfect.net/wiki/Befunge Стаття у енциклопедії езотеричних мов] | |||
== Malbolge == | |||
'''Malbolge''' — мова, що була створена, аби стати найважчою для написання програм. Мова така важка, що перша програма була не написана, а згенерована другою програмою на [[Lisp]]. | |||
===Приклад коду=== | |||
Hello, world: | |||
<pre>(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M} | |||
/.zHGwEDCBA@98\6543W10/.R,+O< | |||
</pre> | |||
===Посилання=== | |||
* [http://www.99-bottles-of-beer.net/language-malbolge-995.html Код на Malbolge, що виводить пісеньку про 99 пляшок пива (!)] | |||
== Piet == | |||
[[Файл:Piet hello.png|200px|thumb|right|«Hello world!» на Піет]] | |||
'''Piet''' — графічна, езотерична мова програмування. Код на Piet виглядає як абстракція.<br /><br /><br /><br /><br /> | |||
== Spoon == | |||
'''Spoon''' — мова, еквівалентна Brainfuck, але Спун використовує одиниці та нулі для запису програм. То є просто пиздець. | |||
===Hello, world!=== | |||
<pre>1 1 1 1 1 1 1 1 1 1 00100 010 1 1 1 1 1 1 1 010 1 1 1 1 1 1 1 1 1 1 010 1 1 1 010 1 011 011 011 | |||
011 000 0011 010 1 1 001010 010 1 001010 1 1 1 1 1 1 1 001010 001010 1 1 1 001010 010 1 1 001010 | |||
011 011 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 001010 010 001010 1 1 1 001010 000 000 000 000 000 000 | |||
001010 000 000 000 000 000 000 000 000 001010 010 1 001010 010 001010</pre> | |||
== Whitespace == | |||
[[Файл:Whitespace.png|200px|thumb|right|Сферична програма на Whitespace]] | |||
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією [[Стекова машина|стекової машини]]. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин. | |||
== Мс’є знаєт толк в ізвращеніях == | |||
Деякі люди навіть намагаються писати нормальні програми на таких мовах (наприклад морський бій, див. Brainfuck). | |||
== Посилання == | |||
* [http://sourceforge.net/projects/esco/ Esco - інтерпретатор езотеричних мов] | |||
* [http://esoteric.voxelperfect.net/wiki/Main_Page Енциклопедія езотеричних мов] | |||
[[Категорія:Мови програмування]] | |||