Статьи

10 самых странных языков программирования, когда-либо созданных

Нет ничего более разочаровывающего для веб-разработчика, чем тратить часы на исправление ошибки, которая должна работать. Часто я застреваю в состоянии программирования, которое выглядит так, будто я совершенно не понимаю, что я делаю, как будто язык, который я использую (CSS, PHP и т. Д.), На самом деле является иностранным языком.

Если то, что я описал, звучит знакомо для вас, то эта статья обеспечит комфорт и юмор.

Эзотерические языки программирования на самом деле не служат какой-либо цели, кроме как развлечься или доказать концепцию. Но мальчик, они дают смешок для всех нас!

Если вы когда-нибудь чувствовали себя как обезьяна, просто стучащая в клавиатуру, тогда Ook! заставит вас чувствовать себя как дома. Это язык, предназначенный в первую очередь для приматов, особенно для орангутана. С ок! Вы используете только три элемента синтаксиса:

  • Ук.
  • Ook?
  • Ук!

Вот несколько примеров Ook! В бою:

1
2
Ook.
Move the Memory Pointer to the next array cell.
1
2
Ook?
Move the Memory Pointer to the previous array cell.
1
2
Ook.
Increment the array cell pointed at by the Memory Pointer.
1
2
Ook!
Decrement the array cell pointed at by the Memory Pointer.
1
2
Ook.
Read a character from STDIN and put its ASCII value into the cell pointed at by the Memory Pointer.

Получаете идею? Да, я тоже …


Фото Сунеко .

Для ценителей изящного искусства Piet — это язык, который вам наверняка понравится. Вдохновленный абстрактным художником Питом Мондрианом, Piet — это язык программирования, который преобразует программы в абстрактные геометрические картины. Программы состоят из 20 различных цветов и затем читаются компилятором на основе шестнадцатеричных значений для запуска программы.

Посмотрите на некоторые сумасшедшие примеры , которые придумали программисты Piet.

К сожалению, название этого языка программирования именно то, что он делает: Whitespace создает программы, основанные на … пробелах. На веб-сайте Whitespace есть отличное описание того, как работает язык.

Большинство современных языков программирования не учитывают синтаксис пробельных символов (пробелы, символы табуляции и новые строки), игнорируя их, как если бы их не было. Мы считаем это грубой несправедливостью по отношению к этим совершенно дружелюбным членам набора символов. Должны ли они игнорироваться только потому, что они невидимы? Пробелы — это язык, который стремится восстановить баланс. Любые непробельные символы игнорируются; только пробелы, символы табуляции и перевода строки считаются синтаксисом.

LOLCODE — мой личный фаворит среди эзотерических языков. Язык основан на явлении LOLCats и использует синтаксис LOLCats для запуска программ. Или что-то типа того.

Просто взглянув на образец программы LOLCODE, вы поймете, почему это фаворит.

1
2
3
4
5
6
7
8
HAI
CAN HAS STDIO?
PLZ OPEN FILE «LOLCATS.TXT»?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE «ERROR!»
KTHXBYE

Удивительно, но LOLCODE вызвал интерес у части сообщества программистов. На официальном сайте перечислено много различных реализаций на таких языках, как PHP, Python, Perl, .NET и Java. Кто знает, может быть, когда-нибудь мы увидим курсы программирования LOL, преподаваемые в школах …

Шекспир не так прост, как ЛОЛКОД, чтобы обернуть голову. Если вы еще не поняли, Шекспир — это язык программирования, основанный на трудах великого драматурга. Каждая программа содержит заголовок, действия, сцены и символы, чтобы сделать блестящий исходный код, который на самом деле интересно читать.

Вот акт I, сцена I «Hello World»:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
The Infamous Hello World Program.
 
Romeo, a young man with a remarkable patience.
Juliet, a likewise young woman of remarkable grace.
Ophelia, a remarkable woman much in dispute with Hamlet.
Hamlet, the flatterer of Andersen Insulting A/S.
 
Act I: Hamlet’s insults and flattery.
 
Scene I: The insulting of Romeo.
 
[Enter Hamlet and Romeo]
 
Hamlet:
You lying stupid fatherless big smelly half-witted coward!
You are as stupid as the difference between a handsome rich brave
hero and thyself!
 
You are as brave as the sum of your fat little stuffed misused dusty
old rotten codpiece and a beautiful fair warm peaceful sunny summer’s
day.
sweetest reddest rose and my father and yourself!
 
You are as cowardly as the sum of yourself and the difference
between a big mighty proud kingdom and a horse.
 
Speak your mind!
 
[Exit Romeo]

Цель Криса Пресси, создателя языка программирования Befunge , была проста: создать язык, который было бы настолько сложно скомпилировать, насколько это возможно. Befunge достигает этого благодаря двум основным особенностям устрашающего языка:

  1. Самомодифицирующийся — инструкция p может записывать новые инструкции в игровое поле; и
  2. Многомерный — одну и ту же инструкцию можно выполнить в четырех разных контекстах (в серии инструкций слева направо или справа налево, либо вверх, либо вниз).

Несмотря на это, есть очень умные люди (со слишком большим количеством свободного времени), которые создали компиляторы для Befunge.

\

reMorse — это язык, который должен выглядеть как азбука Морзе. Видения подводных лодок и телеграмм приходят на ум с этим простым, но невероятно сложным языком. Вот повторная версия «Hello World»:

1
2
3
4
5
6
7
8
9
— — — ..- …-.—.;newline
— — — .-.
— — — …- .
—-.
—-.
—-.
—-…-.- ..-.
//author didn’t feel like doing this part
-…………..;output all characters

Этот язык может быть немного сложным для всех нас (за исключением радиолюбителей). Вы знаете, что программировать — мишень, когда автор языка не закончит все основные примеры из-за сложности.

С соответствующей отрицательной коннотацией, FALSE — это язык, предназначенный для того, чтобы обескуражить даже самых умных программистов. Основанный на языке Forth , FALSE использует синтаксис, основанный на пунктуации (брутто!), Чтобы облегчить процесс программирования.

От самого ЛОЖНОГО создателя:

Я разработал этот язык с двумя конкретными целями: путать всех с запутанным синтаксисом и проектировать максимально мощный язык с крошечной реализацией: в этом случае исполняемый файл компилятора всего 1024 байта (!), Написанный на чистом ассемблере 68000.

Тем не менее, FALSE — не самый нелепый из эзотерических языков, и может фактически служить целям реального мира, поскольку операции достаточно разумны, а язык не очень сложен. Может быть, кто-нибудь когда-нибудь сделает полезное реальное приложение из языка …

Ложь.

Вообразите угрюмого подростка в качестве языка программирования, и вы получите себя когда угодно. Всякий раз, когда это простой язык, который делает то, что хочет, когда хочет.

Он берет код программы и обрабатывает каждую строку как элемент списка дел. Интерпретатор выбирает элемент из списка случайным образом для выполнения и выполняет инструкцию. В некоторых случаях оператор будет содержать предложение, которое указывает, что его нельзя выполнить, пока не будут выполнены определенные условия. Это приводит к тому, что оператор откладывается и помещается обратно в список дел.

Не думайте, что на самом деле вы можете контролировать программу Everyever. Представьте, как тяжело это делает программирование чем-то вроде «99 бутылок пива»! Программа вернет что-то, что читается так, как будто оно уже израсходовало все 99.

1
2
3
4
defer (4 || N(1)
defer (4 || N(1)==N(2)) print(«Take one down and pass it around,»);
defer (4 || N(2)==N(3)) print(N(1)+» bottles of beer on the wall.»);
1#98,2#98,3#98;

Фотография найдена .

Всегда хотел говорить как «l33t H4xX0r5»? Теперь вы можете изучать язык программирования l33t . Проверьте приложение «Hello World» от l33t:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 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!!!
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!!!!
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!!!
1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
1t 3v3n MiTe jUs7 s4y «H3LL0 W0RLD!!!»
tH3r3’s n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!
 
5uxX0r5!!!L0L0L0L0L!!!!!!!

В реальной жизни l33t — это «sUxX0r» из-за того, что вы не можете использовать его ни для чего полезного. Ну что ж, вернемся к взлому со всеми остальными сценаристами детишками и троллями!


Фото Йоз .