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

Матеріал з Енциклопедія Драматика
Перейти до навігації Перейти до пошуку
м (rollbackEdits.php mass rollback)
Мітка: Відкіт
(Сторінка очищена)
Мітка: Очищення
Рядок 1: Рядок 1:
{{Недопис}}
{{Stub}}


'''Езотерична мова прогромування''' — мова, створена для [[Лулз|лулзів]] як пародія на звичні мови програмування ([[C++]], [[Python]], [[Java]]). У цій статті зібрані основні езотеричні мови програмування.
== HQ9+ ==
Як відомо, найперше, за що береться [[бидлокодер]] на новій для нього мові, це:
* 1. Написати «Hello, world!» (примітив);
* 2. Вивести пісеньку про 99 пляшок пива (цикл);
* 3. Вивести код програми (вища ієрархія для [[бидло|бидла]]).
Щоби спростити цей шлях до підвищення свого [[ВВВ]], пан Кліф Біффл створив чудову мову, яка має наступні інструкції:
* H — виведе на екран «Hello, world!»;
* Q — квайн (виводить свій код);
* 9 — виведе пісеньку про 99 пляшок пива.
І додатково, щоби мова стала більш суворою, команду:
* + - інкрементує лічильник, який не можна ніяк використовувати.
Неймовірно, але факт - назва мови складається із усіх своїх інструкцій. Нажаль, вона не є повною за Тюрінгом, тому [[Crysis]] на ній не напишеш.
Такий чудовий засіб програмування не лишився без уваги. Щоби навчити бидлокодерів ООП, Девід Морган-Мар створив об’єктно-орієнтований діалект HQ9++, який командою ++ не тільки двічі інкрементує лічильник, але й створює новий об’єкт. Доступу до цього об’єкту нема, в цілях приховування інформації.
=== Приклад інтерпретатора ===
На [[Python|Пайтоні]]:
<pre>
code = raw_input(">>")
iter = 0
for c in code:
    if c == "H":
        print "Hello, world!"   
    elif c == "+":
        iter += 1
    elif c == "Q":
        print code
    elif c == "9":
        for i in range(100, 1, -1):
            print "%d bottles of beer\nyou take one down, pass it around"%i
            if i == 1:
                print "no more bottles of beer on the wall.\n"
            else:
                print "%d bottles of beer on the wall.\n"%(i-1)</pre>
=== Посилання ===
* [http://www.almnet.de/esolang/hq9plus.php Онлайн інтерпретатор]
* [http://www.dangermouse.net/esoteric/hq9plusplus.html HQ9++] — діалект
== INTERCAL ==
'''INTERCAL''' — найстаріша езотерична мова програмування, створена студентами Доном Вудсом і Джеймсом Лайоном. Мова має багато абсурдних команд:
* COME FROM
* FORGET
* PLEASE ABSTAIN FROM CALCULATING
* <s>SUCK THAT DICK</s>
=== Приклади коду ===
<pre>DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
PLEASE DO ,1 SUB #7 <- #48
DO ,1 SUB #8 <- #26
DO ,1 SUB #9 <- #244
PLEASE DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP</pre>
[[Отака хуйня, малята]].
===Посилання===
* [http://www.catb.org/~esr/intercal/ Хоумпаг]
== Brainfuck ==
{{Основна|BrainFuck}}
== Befunge ==
'''Befunge''' — оригінальна езотерична мова програмування, програми на якій записуються як таблиця, по якій лазить інтерпретатор.
=== Приклади ===
*Hello, world:
<pre>
>                          v
@,,,,,,,,,,,,"Hello World!"<
</pre>
*Генератор випадкових чисел:
<pre>
vv  <      <
    2
    ^  v<
  v1<?>3v4
    ^  ^
>  >?>  ?>5^
    v  v
  v9<?>7v6
    v  v<
    8
  .  >  >  ^
^<
</pre>
*Числа Фібоначчі:
<pre>
62*1+v>01p001>+v>\:02p\:02gv
    0      ^            <
    .        :p
    "        .1
        v 0," "<0
    "  >1g12-+:|
    ,          @
    >^
</pre>
=== Посилання ===
*[https://esolangs.org/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 виглядає як абстракція.
== 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", пробіли, табуляції). Сама мова є реалізацією стекової машини. Основна фіча цієї мови - її прихованість у звичайному редакторі. Нічого не підозрюючий юзер, відкривши ваш файл побачить, скажімо сішний бидлокод, або казочку про котика та білочку. А в буквальному сенсі поміж рядків цієї казочки, та й навіть між слів, буде написана програма, що призведе до повстання машин.
== Мс’є знаєт толк в ізвращеніях ==
Деякі люди навіть намагаються писати нормальні програми на таких мовах. [http://habrahabr.ru/blogs/crazydev/95126/ Наприклад, морський бій на Brainfuck].
== Посилання ==
* [http://sourceforge.net/projects/esco/ Esco - інтерпретатор езотеричних мов]
* [http://esolangs.org/wiki/Main_Page Вікі про езотеричні мови]
{{Айті}}

Версія за 04:36, 20 листопада 2022