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

Матеріал з Файна Меморії
Перейти до навігації Перейти до пошуку
Surikoff (обговорення | внесок)
Немає опису редагування
Surikoff (обговорення | внесок)
мНемає опису редагування
Рядок 36: Рядок 36:
* FORGET
* FORGET
* PLEASE ABSTAIN FROM CALCULATING
* PLEASE ABSTAIN FROM CALCULATING
* <s>SUCK THAT DICK</s>
===Приклади коду===
===Приклади коду===
<pre>DO ,1 <- #13
<pre>DO ,1 <- #13
Рядок 53: Рядок 54:
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 команд, є повною по Тьюрінгу. Також відома своєю назвою.
===Команди===
===Команди===
{| align="center" class="standard" border="2" cellpadding="2"
{| align="center" class="standard" border="2" cellpadding="2"
Рядок 96: Рядок 98:
  ------.--------.>+.>.
  ------.--------.>+.>.
</pre>
</pre>
Деякі люди на Брейнфаках пишуть навіть [http://habrahabr.ru/blogs/crazydev/95126/ морський бій].
===Посилання===
===Посилання===
* [http://bf-fan.coolpage.biz/ Трохи  більше про БрейнФак]
* [http://bf-fan.coolpage.biz/ Трохи  більше про БрейнФак]
Рядок 152: Рядок 155:


== Spoon ==
== Spoon ==
'''Spoon''' — мова, еквівалентна Brainfuck, але Спун використовує одиниці та нулі для запису програм.
'''Spoon''' — мова, еквівалентна Brainfuck, але Спун використовує одиниці та нулі для запису програм. То є просто пиздець.
===Hello, world!===
===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
<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
Рядок 161: Рядок 164:
== Whitespace ==
== Whitespace ==
[[Файл:Whitespace.png|200px|thumb|right|Сферична програма на Whitespace]]
[[Файл:Whitespace.png|200px|thumb|right|Сферична програма на Whitespace]]
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються.
'''Whitespace''' — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією [[Стекова машина|стекової машини]].
 
== Мс’є знаєт толк в ізвращеніях ==
Деякі люди навіть намагаються писати нормальні програми на таких мовах (наприклад морський бій, див. Brainfuck).  


== Посилання ==
== Посилання ==

Версія за 09:13, 6 червня 2011

Езотерична мова прогромування — мова, створена для лулзів, в якості пародії на звичні мови програмування (Сі, Pascal, Java). У цій статті зібрані основні езотеричні мови програмування.

HQ9+

HQ9+ — езотерична мова програмування, створена Кліфом Біффлом. Відомий він тим, що має 4 команди (!!!), по одному символу кожна:

  • H — виведе на екран «Hello, world!!!»
  • Q — квайн (виводить свій код).
  • 9 — виведе пісеньку про 99 пляшок пива.
  • + — інкрементує лічильник, який не можна ніяк використовувати.

Мова має over дохуя діалектів і реалізацій, так як інтерпретатор пишеться за 5 хвилин.

Приклад інтерпретатора

На Python:

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)

Посилання

INTERCAL

INTERCAL — найстаріша езотерична мова програмування, створена студентами Доном Вудсом і Джеймсом Лайоном. Мова має багато абсурдних команд:

  • COME FROM
  • FORGET
  • PLEASE ABSTAIN FROM CALCULATING
  • SUCK THAT DICK

Приклади коду

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

Отака хуйня, малята.

Посилання

Brainfuck

Brainfuck (англ. Мізкотрах) — найвідоміша езотерична мова програмування, відома тим, що хоч і має всього 8 команд, є повною по Тьюрінгу. Також відома своєю назвою.

Команди

Команда Її значення
< Перейти до попередньої клітинки
> Перейти до наступної клітинки
+ Інкрементувати значення у поточній клітинці
- Декрементувати значення у поточній клітинці
. Вивести значення поточної клітинки
, Отримати значення поточної клітинки з клавіатури
[ Якщо значення поточної клітинки не 0, то виконати блок коду між [ і ]
] Якщо значення поточної клітинки не 0, то виконати блок коду між [ і ]

Приклади коду

Hello, world:

 
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
 .>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
 ------.--------.>+.>.

Деякі люди на Брейнфаках пишуть навіть морський бій.

Посилання

Befunge

Befunge — оригінальна езотерична мова програмування, програми на якій записуються як таблиця, по якій лазить інтерпретатор.

Приклади

Hello, world:

>                          v
@,,,,,,,,,,,,"Hello World!"<


Генератор випадкових чисел:

 vv  <      <
     2
     ^  v<
  v1<?>3v4
     ^   ^
 >  >?>  ?>5^
     v   v
  v9<?>7v6
     v  v<
     8
  .  >  >   ^
 ^<


Числа Фібоначчі:

62*1+v>01p001>+v>\:02p\:02gv
     0       ^             <
     .         :p
     "         .1
        v 0," "<0
     "  >1g12-+:|
     ,          @
     >^

Посилання

Malbolge

Malbolge — мова, що була створена, аби стати найважчою для написання програм. Мова така важка, що перша програма була не написана, а згенерована другою програмою на Lisp.

Приклад коду

Hello, world:

(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**hKs_dG5[m_BA{?-Y;;Vb'rR5431M}
/.zHGwEDCBA@98\6543W10/.R,+O<

Посилання

Piet

«Hello world!» на Піет

Piet — графічна, езотерична мова програмування. Код на Piet виглядає як абстракція.




Spoon

Spoon — мова, еквівалентна Brainfuck, але Спун використовує одиниці та нулі для запису програм. То є просто пиздець.

Hello, world!

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

Whitespace

Сферична програма на Whitespace

Whitespace — мова, що використовує для запису програм лише символи, що не відображаються ("\n", пробіли, табуляції). Сама мова є реалізацією стекової машини.

Мс’є знаєт толк в ізвращеніях

Деякі люди навіть намагаються писати нормальні програми на таких мовах (наприклад морський бій, див. Brainfuck).

Посилання