четверг, 6 июля 2017 г.

Примеры кода на 39 эзотерических языках программирования

Кто-то ради шутки, кто-то чтобы доказать существование или опровергнуть гипотезу, кто-то для разминки мозгов (путешествуя по поверхности бутылки Клейна или в четырехмерном пространстве), но сотни людей создали «эзотерические» языки программирования. Я пролистал около 150 таких языков и больше никогда не смогу быть прежним.



«Argh!», «Oof!», «2-ill», «Nhohnhehr», «Noit o' mnain gelb», «DZZZZ», «Ypsilax», «YABALL», fuckfuck — это заклинанияпоэзия только названия… под катом — примеры кода на самых вырвиглазных языках программирования.

Кроличья нора глубока.

INTERCAL (тьюринг-полный)



Don Woods и Jim Lyon

Один из старейших эзотерических языков программирования. Как утверждают создатели, его название означает «Язык программирования с непроизносимой аббревиатурой» (англ. Compiler Language With No Pronounceable Acronym). Язык был создан в 1972 году студентами Доном Вудсом (Don Woods) и Джеймсом М. Лайоном (James M. Lyon) как пародия на существующие языки программирования и гимнастика ума.

Hello, world

Каждой команде программы можно задать вероятность, с которой она будет выполняться при запуске программы. Кроме того, существуют команды, которые блокируют выполнение последующих команд определенного типа или изменения переменных.
Статья про INTERCAL на Хабре

Brainfuck (тьюринг-полный)


Один из известнейших эзотерических языков программирования, придуман Урбаном Мюллером (нем. Urban Müller) в 1993.

Hello, world!


Befunge


Стековый эзотерический язык программирования. Считается двумерным, так как программа на Befunge записывается в таблицу со сшитыми краями (тор), по которой в различных направлениях перемещается интерпретатор, исполняя команды, расположенные в её ячейках. Написан Крисом Пресси в 1993 году. Как утверждал автор, его целью было разработать язык, максимально сложный для компиляции. Сложность обеспечивается командами p и g, модифицирующими текст программы.

Hello, world!


Malbolge


Язык разработан в с целью быть максимально сложным для написания программ. Получил своё название от Malebolge, восьмого круга ада Данте.

Hello, world!



или



Piet


Язык Piet использует разноцветные изображения в качестве программ. Программа на Piet выглядит как постживописная абстракция. Piet получил своё название от имени нидерландского художника Пита Мондриана.

Hello, world!



1L_a (expected to be Turing-complete, but this has not been proven)


Программа для печати символа «A»


Оригинал проги слева, справа — укрупненная версия

2L (тьюринг-полный)


Простой цикл, который получает 9 путем умножения 5 на 2 и вычитания 1



4DL


В 4DL для представления программы используется четырёхмерная решётка, и направлений её выполнения, соответственно, 8.

Программа, печатающая сумму чисел из входной строки:



Траектория выполнения приведённой выше программы в 4-мерном пространстве:

image

Aheui


Aheui (아희 на корейском) первый ЯП, который разработан на корейском алфавите Hangul.

Hello, world!


99bottles


quine


BiTrax


Hello, world!



Brainloller


Hello, world!


Справа — оригинал, слева — увеличенная версия.

DOBELA


DOt-Based Esoteric LAnguage.

Hello, world!



Floater


Hello, world!

image

Hexagony


Hexagony — первый язык, где инструкции расположены внутри шестиугольной сетки. Название происходит от слов «hexagon» (шестиугольник) и «agony» (агония), потому что программирование будет сложным.

Hello, world!


LLL


Язык логических вентелей и цифровых схем.

Hello, world!



Manufactoria


Язык и игра в одном лице.

Hello, world!



ObjectArt


Hello, world!


PoGo


Hello, world!


Ropy


Hello, world!



Sir. Cut


Есть провода, токи, логические вентили и I/O.

Hello, world!



SNUSP


Hello, world!



Spiral


Hello, world!


Spleenmap


Hello, world!



Surface


В Surface программные инструкции расположены на 2D сетке вокруг бутылки Клейна.

Hello, world!



Tree


Hello, world!



Zetaplex


Hello, world!



Ziim


Hello, world!



Lazy K


Тьюринговая трясина, основанная на комбинаторной логике.

Hello, world!



Spoon


Коды команд подобраны таким образом, что позволяют распознавать все команды без дополнительного разделителя при разборе программы слева направо.

Hello, world!

1111111111001000101111111010111111111101011101010
11011011011000001101011001010010100101011111110
01010001010111001010010110010100110111111111111
1111100101001000101011100101000000000000000000
000101000000000000000000000000000101001010010
10010001010


Velato


Hello, world!



Слушать


Whitespace


Whitespace (англ. пробел) – эзотерический язык программирования, созданный Э. Брэди и К. Моррисом. Существенным его отличием является то, что для управляющих конструкций используются только непечатаемые символы, а именно: пробел, перевод строки и табуляция. Интересным следствием этого факта является то, что текст программы на языке Whitespace можно «скрыть» внутри исходных кодов другой программы.

Hello, world! («Суслика не видно, но он есть»)



с подсветкой спецсимволов


Откровенно шуточные ЯП



HQ9+


HQ9+ шуточный язык с четырьмя инструкциями:

H: Print «hello, world»
Q: Print the program's source code
9: Print the lyrics to «99 Bottles of Beer»
+: Increment the accumulator

LOLCODE


Эзотерический язык программирования, созданный под влиянием интернет-мема о lolcat’ах. Есть спецификация этого языка и существуют несколько работающих интерпретаторов и компиляторов этого языка. LOLCODE является Тьюринг-полным языком.

Hello World



l33t



// «Hello World» by Stephen McGreal.
// Note that the views expressed in this source code do not necessarily coincide with those of the author :o)

Gr34t l33tN3$$?
M3h…
iT 41n't s0 7rIckY.

l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
w4r3Z c0ll3cT10n2 r 7eh l3Et3r!

Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!!
I'M teh fr4GM4stEr aN I'lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!! L0L0L0L!
t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$

l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$…
s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y'r3 ju$t n0rMal lEE7 5pEEk but th3y're 5ecRetLy c0dE!!!
n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!
50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn 8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jUs7 s4y «H3LL0 W0RLD!!!» u ju5t cAn'T gu3s5.
tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!

5uxX0r5!!!L0L0L0L0L!!!

ArnoldC


Язык программирования терминатора.

Hello, world!



Ook!


То ли язык орангутангов, то ли мечта Вильяма Оккама.

Hello, world!



Chef


Эзотерический язык программирования, разработанный Дэвидом Морган-Маром, программы на котором сходны с кулинарными рецептами. Каждая программа в языке состоит из названия, списка переменных и их значений, списка инструкций. Переменные могут быть названы только названиями основных продуктов питания. Стек, в которые помещаются значения переменных, называется англ. mixing bowl («чаша для смешивания»), а операции для манипуляции с переменными — mix («смешать»), stir («взболтать») и так далее.

Hello World

Shakespeare


Эзотерический язык программирования разработанный Джоном Аслаудом и Карлом Хассельстромом. Язык Shakespeare призван замаскировать исходный код программы под пьесы Шекспира.

Hello, world!

Йоба


Ответ русских гопников Шекспиру.

Осторожно, маты

Читать еще


Источник: https://habrahabr.ru/company/edison/blog/313334/

Комментариев нет:

Отправить комментарий