Share This
Связаться со мной
Крути в низ
Categories
//10 самых странных языков программирования

10 самых странных языков программирования

Эзотерические языки разрабатывают в концептуальных, экспериментальных и развлекательных целях. Их общая черта – максимально запутанный и странный синтаксис, понятный только посвященным. В этой подборке – языки, которые выбрали бы Ходор, доктор Лектер, Малевич, Джеймс Бонд, Терминатор и Луи Армстронг, если бы решили войти в айти.

10 samyh strannyh jazykov programmirovanija ae2fdbc - 10 самых странных языков программирования

Brainfuck, пожалуй, самый известный язык из эзотерических: о нем слышали даже непосвященные. Однако Brainfuck – не первый шуточный ЯП, и далеко не единственный: энциклопедия Esolang уже насчитывает 4611 эзотерических языков, а самым первым прикольным языком был INTERCAL, созданный в далеком 1972 году.

INTERCAL – язык вежливых программистов

10 samyh strannyh jazykov programmirovanija a806718 - 10 самых странных языков программирования

Язык программирования INTERCAL

Программа на INTERCAL состоит из списка инструкций. Перед каждой инструкцией можно (опционально) указывать метку строки в скобках, а за меткой следует ключевое слово DO (ВЫПОЛНЯЙ), PLEASE (ПОЖАЛУЙСТА) или PLEASE DO (ПОЖАЛУЙСТА, ВЫПОЛНЯЙ). Это идентификатор инструкции.

В INTERCAL есть правило вежливости – от 1/3 до 1/5 всех инструкций должны содержать вежливые идентификаторы PLEASE, PLEASE DO, или особо элегантный вариант – PLEASEN’T. В то же время инструкции DON’T (НЕ ВЫПОЛНЯЙ) или PLEASE DON’T (ПОЖАЛУЙСТА, НЕ ВЫПОЛНЯЙ) ничего не выполняют, пока не будут восстановлены командой REINSTATE. Можно указать шанс выполнения инструкции в процентах – DO %50.

Если у инструкции нет метки, и она не похожа на исполняемые инструкции INTERCAL, она вообще никогда ничего не делает. Так создаются комментарии – PLEASE NOTE.

INTERCAL обладает Тьюринг-полнотой, так что при желании на нем можно писать вполне себе прикладные приложения. Есть, например, рабочий веб-фреймворк на основе INTERCAL, с командами типа ick (компилирует код) и gross (запускает сервер). За долгие годы своего существования INTERCAL обзавелся преданным сообществом поклонников, множеством интерпретаторов/компиляторов и новыми командами COME FROM и DO COME FROM.

Вот пример вычисления чисел Фибоначчи на INTERCAL:

             DO .9 <- #16     DO .10 <- #0     DO .11 <- #1  (1) PLEASE READ OUT .11     DO .1 <- .10     DO .2 <- .11     PLEASE (1009) NEXT     DO .10 <- .11     DO .11 <- .3      DO (3) NEXT     DO (1) NEXT  (3) DO (4) NEXT     PLEASE GIVE UP  (4) DO .1 <- .9     DO .2 <- #1     PLEASE (1010) NEXT     DO .9 <- .3     DO .1 <- '.9~.9'~#1     PLEASE (1020) NEXT     DO RESUME .1     

Результат выводится в римских цифрах (ведь INTERCAL не ищет легких путей!):

         I  I  II  III V VIII XIII XXI XXXIV  LV LXXXIX CXLIV CCXXXIII CCCLXXVII DCX CMLXXXVII     

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста» Интересно, перейти к каналу

Malbolge – самый сложный язык программирования в мире

10 samyh strannyh jazykov programmirovanija 28a8aa1 - 10 самых странных языков программирования

Язык программирования Malbolge

Malbolge – язык для виртуальной машины, работающей в троичной системе счисления. Он не имеет стандартной синтаксической структуры, команды в нем выполняются произвольно, код зашифрован, а вся свободная память интерпретатора заполняется пустыми данными. Названный в честь восьмого круга Ада, Malbolge оправдывает свое имя на 100%: он настолько сложен, что даже его создатель не смог написать на нем ни одной программы.

Разработка первой Hello, World на Malbolge заняла 2 года и потребовала использования другой программы (на Lisp), выполнившей поиск по множеству возможных вариантов кода:

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

Сейчас для написания кода на Malbolge энтузиасты используют более практичные подходы – подробная инструкция изложена здесь, есть и слегка более понятная версия языка (wimpmode) – Dis. Появился даже Тьюринг-полный диалект языка, Malbolge Unshackled, который во многих смыслах страшнее оригинала – вот пример программы Hello, World, которая работает на оригинальном Malbolge и на диалекте Malbolge Unshackled:

         bCBA@?>=<;:9876543210/.-,I*)(E~%$#"RQ}|{zyxwvutsrD0|nQl,+*)(f%dF"a3_^] [ZYXWVUTSRQJmNMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#dc~}|_^yrwZu tsrqpinPlOjihgf_dcEaD_^]UZYX:V9TSRQPONGLK.IHGF?DCB$@#>=<;4987w/v3210/ .-,+$k('&%|#"!~w`{zyxwputslUponmlkjiKgf_Hcba`_^][ZYXWP9TSRQPONMFKJCHA *EDCBA@?>=<|:98y6543210).-,%*#j'&%$#"!~}|^tywvutslkTonmlkjcLafedcaD_ X][TY<WVOTSLQ4ONMFKDC,GFEDC<A$9>=<;49z765.3,+r/.-,l*)(!h%$#"!~}|{zyxw vunWrqponmlkjihgfed]Fa`_^][ZYXW9UTSRK4ONMLKJIHGFEDCBA@?8!<;:987654321 0/.-,%l)('&%$#"!~}|^t]xqvYnsrqpinQlejihafIdca`Y^A[ZSXQ:8NSRQJ3NMLKJI HGFEDC%;$?8=<}49876543210qp',+*)('&%$#"!b}`{zyrwpuXmrqpohmlOdihgfedcba `_^]?=S<WPU8SRQJOHM0EJIHG@ED'<A@?>=<;:987654us+r/(-,m*#('&%$#"!~a`{ty xwvutsrqpoRmPkjibg`eHcb[`_X]@UZYXWPUT7RKPONMLKJIHGFED'%;$?8=~;:387054u 2+0/.-,+*)('&%$ecyb}v{z]xwputsrqponQPkjchgfedcba`_B]@[ZSXWPU8SLQPOHML/ JIBGFEDCBA@?>=<}{3z705v321*/(om%*)j'&}$#"!~}|{zyxwZXnWrkpoRmlkdihgfedc FE`_^W[ZYXWVUT7R5PONGLEJ-HG@ED=B%@9>=<5:9z765.3210/.-,+*)jh~g${"c~}v{ zsxwZutslqponmlkjihgJH^Gb[`_B][ZSXWVUTS65PONMFKJIHGFED'B%@?>7<5:9z765 4-210/.-,+*)jh~g${dbx}|_zyxwputsrqponmlOMcLg`edGba`_^W[ZYX;:UTSRQJONM LKJI,G*EDC<A:?"=<5:927x5.321*/p',+*)"'&g$#"!~w|{zyxwvutWUkTohmlOjihgf_ dcba`_^]?=S<WPUT7RQPONMLEJIH+*EDCBA@?8=<;:9z7x543,1*/.o,+*)('&}$#"!~} |_]swputWrqponmlejihgfedGE[D_X]?ZYXWVUTSLQP32MLKJIHGF?DCBA$?"=<;4927 x54-21*/p-&+*)"'h}$#"!x}|_zyxwvutslqponmlOMcLg`edGba`_^][TYXWVUT75K4O HML/JIHGFEDCBA@9"=~;:987654321*/p-n+*)"'~%f#"y~}v{^sxwvunsrUponmlkjihg f_dcbECYB]V[>YXQVUNSR5PONMLKJIHGF?DCB%#9"=6;:{876543210/.-&m*)j'&%$#"! ~}|{zswZutslqjoRmfkjibgfIdcba`_^][ZYRWV97M6QJ31GLK.IHGFEDCBA@?>7<;|z 2y6/43t10/.-,+*)('&%|e"!~a|{zyxwvutsrqpiRmlOjibgf_dGb[`_^W[>YXWVUTSRQ PONMFK.,B+F?DC&A@?>=<;:98765.3tr*q.',+l)('&%$#"!~}|{zswvutWrqponmlkji hgfe^Gba`C^]UZSX;VUNSRKP3HMLKJCHG*EDCBA@?>=<;:981xv.u2+0/p-,+*)('&%$# "!~w`^t]xqvuXsrqponmlkjihgfe^Gba`_^A[ZYXWVUTSRQPONG0KJIH+FED=B;@?"=<; :9876543210/(o,l$k(!hf|#"c~}|{zyxwvutsrqpiRmOeNibgfIdcba`_^][ZYXWVUN7 RQPONM0KJIHGFEDCBA@?>=<5|98765v3,10/(-n%*)('~%$e"!~}|{zyxwvutsrqjSnmOe NibgJe^cbaZ_^A[ZYXWVUTSRQPONMF/JI+A*E>CB%@?>=<;:9876543210)p-,+*)('h% $#"!~}|{zyxwvutslUponmlkNihg`e^cbE`_^][ZYXWVUTSRQPI2MLK-C,G@E(CB;@?8= ~;498705v-210/(om%*)j'&%$#"!~}|{zyxwvunWrqpRhQlejiLgfedcba`_^][ZYXWVO 87RQ4ONMLKJIHGFEDCBA@?>7~}:{876/4-2s0/(-,%*k"'&%${"!b}|{zyxwvutsrqponm leNihgfH^Gb[`C^]V[ZSXW:UTSRQPONMLKJIHGFED=&A@?>~6}:387x543210/.-,+*)(' &%$#zc~a|{^yxwvutsrqponmlkjihg`IdGbE`_X]UZ=XQVUTMRQ4ONMLKJIHGFEDCBA@? >=6}:9876v.u2+0q.-,%*#jh~%$e"!~}|{zyxwvutsrqpongPkjihgI_Hca`C^]?TY<W VUTSR5PO2MLK.CH+FEDCBA$?"=<;4927x54-21*/p-&+*)"'h}$#"!x}|_zyx[puXsrqpo nmlkjLbKf_dGba`Y^W?ZSXWVOTS6QPO2GL/JIHGFEDCBA#9"=6;:{876w4321*/.o,+*) ('&%$#"c~}`{zywvutmrqTonmlkjihgfeHcFa`_X]V[>YRWVUNS6KPONMFKJ-HGF)DCBA :?>!<;:9876543210/.n&m*#('h%$#d!~}|uzywvutsrqponmlkjiKaJe^cbED_XA[ZY XWVUTSR5PO21LE.IHGFEDCBA@?"=~;:92705v32+0/(-n%*)('~%$ed!xa|{zyxwvutsrq ponPfOjchgJId]Fa`_^][ZYXWVUTS5K4OHML/.IHA*EDCBA@?>=<;:{87xw43,s0/.-,+ *)('&%f#"cb}|u^yxwvutsrqponmlkjLbKf_dcFE`_XA[ZYXWVUTSRQPONM/E.IBGF)(C BA:#>=<;:98765432s0/po,+*#j'&%$#"!~}|{zywZunsrqjoRglkjibgfIHcbaZC^][ ZYXWVUTSRQPON0F/JCH+F?DCB;@?"!<;:3z76543210/.-,+*)('g}f#z!~a`{zyxqvuts rqponmlkjihKfeHGba`_X][ZYXWVUTSRQPO2M0KJCHG@E(=BA@?8=<}|9876/43210/.- ,+*)('&%$#"bxa|uzy[vutslqponmlkjihgfedcba`_AW@[TYX;:UTSRQJONMLKJIHGFE DCB%@?"!<;:9816543210/.-,+*)j'h%$#z!x}`uzyxwputWVqponmfkjihgfedcba`_^] [Z<R;VOT7RQPINGL/DIHGF?DC&%@?>=<5:9876543210/.-,+*)i!h%|#"cb}|{zyxqvu tsrqponmlkjMhgJIdcba`_X][ZYXWVUTSRQ4O2MLKDIBG*ED=BA:?"7<;:9276wv3210/ .',+*)('&%$#"!~}|{zr[votWrqjonglkNMhgfedca`_^][ZYXWVUTSRQ3I2MFKJ-,G FEDCBA:?>=<;:987654u21rq.-,+*)(!&%$#"!~}|{zywZutmrqjoRmfkjibgfIHcba`_ ^]V[ZYXWVUTSRQPONML.D-HAF)DCB;@9"~6;:{z7654321*/.-,+*)('&%$#"!~`v_zsxw vutmVqponmlkjihgJedcbaZC^][ZYXWVUT7R5PONGLEJ-HG@ED=B%@9>=<5:{27654-21 0/.'n+*)('&%$#"!~}|{]swpuXsrqjohmPkdihg`edcbaZC^][ZYXWVUTSRQP2H1LEJI HGFEDCBA:#>=<;:98765432+r/.-,+*)('&%$#zc~`v_zsZputsrqponmleNiKaJe^cba `_^][ZYRWVUTSRQPONMLKJIHGFEDCBA@?>=<;:98y65432s0/.-,+*)('&}$#"!~}|{zy xwvutsrqponmlkjihgfedcFa`_^]@[>YXWPUNSRQPONMLKJIBGFEDCBA@?>=<;:9876543 210/.-,+*)(i&%$#"!~}|^t]xqvutsrqponmlejihgfedcba`_^][ZYXWVUTSRQPONMLK .IHGFEDCBA#9"=6;:9876543210/(-,+*)('&%$#"!~}|{zyxwvutsrqponQlkjihKfedc ba`_^][ZSXWVUTSRQPONMLKJIHGFEDCBA@?>=<;|98765v3t10).-&+l)"'&%|#dy~}|{ tyxwvutsrqponmfkjihgfedcba`_^][ZYXWVUTSRQPON1LKJIHGFED&<%@9>!<;49816w 4-210).-,+*)('&%$#"y~}|{zyxwvutsrqponmlkjihgfedcbaD_^][ZYXW9O8SLQPONM LKJIHGFED=BA@?>=<;:9876543210/.-,+*)('&g$#"!~a|{zyxwvutsrqpohmlkjihgfe dcba`_^][ZYXWVUTSRQ4ONMLK.I,GFE>C<A$?8=<;49z16543,10/.-,+*)('&%${"!~} |{zyxwvutsrqponmlkjihgfedGba`_^][Z<R;VOT7RQPINGL/JCHGF?DCBA@?>=<;:987 0543210/.-,+*)('&%$#"!~}|{zyxwZutsrqponmOeNibgfedcba`_^][ZYRWVUTSRQPO NMLKJIHGFEDCBA@?>=<}:9876w43210/.-,+*)('&}$#"!~}|{zyxwvutsrqponmlkjihg JedcbaD_^][ZYXWVUTSRQJONMLKJIHGFEDCBA@?>=<;:987654u210/.-,+*j"i&}$e"y ~}|uz]rwvutmVTjonmlkjihgfedcbaZ_^][ZYXWVUTSRQPONMLKJIHGFED'BA@?>=<;:z 2y6/43210q(-,+*)('&%$#"!~}|{zyxwvutsrqTonmlkNihgfeH]ba`_^][ZYXWVUTSRQ PONMLKJIH+FEDCB%@#>=6;:387654u,10/.-,+*)('&%$#"!~}|{zyxwvuXsrqponmlkMc Lg`eHca`_X]@UZYXWP97MRQPON1FKJIHGFEDCBA@?>=<;:987654321r/.-,+*)('g}f# z!~}|{^yrwvutsrqponmlkjihgfedcba`_^A[ZYX;VUTSR5PINMLKJIHGFEDCBA@?>=<; :98765v3210/p-,+*)j'~%$#"!~}|{zyxwvutsrqponmlkjMhgfedcba`BXAUZ=XWPUTM R5JONMLE.,BGFEDC&A:?>=<;:9876543210/.-,+*)('&g$#"!~}|{zr[votsrqpSnmfk jihgfedcba`_^][ZYXWVUTS6QPONM0KJIHG*ED=BA@?>=<;:9876543210/.-,+*k('&% $e"c~}v{zsx[votsrkponmlOjibgfedcba`_^][ZYXWVUTSRQPO2MLKJIHGFE'=&A:?"= 6;:9276543t10).-,+*)('&%$#"!~}|{zyxwvutWrqponmlkjLbKf_dcba`C^]UZYXWVU TSRQPONMLKJIHGFEDC&A@?>=~;:987x543,10/.-,+*)('&%$#"!~}|{zyx[vutsrUponm lOjihafedcba`_^][ZYXWVUTSRQPO2MLKJIHGFE'=&A:?"=<;4927x5.321*/p',+*)"i g}$#"!~a|{zsxwvutsrqponmlkjihgfedcbaD_^][ZYXW9O8SLQPONM0KJIHGFEDCB;@? >=<;:9876543210q.-,+*k('&%$e"!~}|{zyxwputsrqponmlkjihgfeHcba`_B]@[ZYRW PU8SRKPOHM0KDIHG@E(=BA@?8=<;:9z76543210/.',+*)('&%$#"!~}|{z]xwvutsrqpR hQlejMhg`ed]bE`Y^]UZ=RWVUTMRQPON1LKJIHGFEDC<A@?>=<;:987654321r/.-,+*) ('g}f#z!~}|{^yxwvutsrUjonmlkjihgfedcbE`_^]?ZYXWV9TSRQPONM0EJIHGFEDCBA @?>=~;:987x5v321*/(-n+$)('~%f{"!~}v{zyxwZutsrqponQfkjihgfedcba`_^A[ZY XWVUT6L5PIN1LKJCHAF)D=BA@9>=<;:{87654321r).-,+*)('&%$#"!b}|{zyxwvuWmVq jonmPeNihgfedcba`_^][ZY<WVUTS6QPO2G0KJIHGFEDCBA@?>=<;|98765v3t10/(-&+ l)"'&%|#dy~}|{tyxwZoXsrqponmlkjihgfedcFa`_^][ZY;Q:UNSRQ4I2MLKJIHGFEDC BA@?>=~;:9876543s+r/(-,+l)"'h%$#"!~}|{zyxwvutsVqponmPkjiLg`eHcba`_^][ ZYXWVUTS6QPONM0K.IHG@E>C&A:?>=6;|38765.321r/(-n+*)('&%$#"!~}|{zywvuts rqpoQgPkdihgJe^cFa`_^][ZYXWVUTSRQ4ONMLKJIHG)?(C<A@?"=<5|9876543210/.- ,+*)j'&%$#d!~}`{zswvutsrqponmlkjihgJedcbaD_B]UZYRW:OTSRQJONM0KJC,GFE DCBA@?>=<;:987x543210/.-m%l)"'h}$#"!x}|{^yxqZutsrqponmlkjihgfeHcba`_^] [=S<WPUTS6QPOHM0KJIHGFEDCBA@?>=<;|98765v321r/.-&+l)('&%$#"!~}|{zyxwZu tsrqToRmlkdibgJed]baZ_BW[ZYRWVU8SRQJO2MLKJIHGFEDCBA@?>=~;:9876543s+r/ (-,+l)('~%f#"!~}|{zyxwvutsrqTonmlkjihgI_Hca`_B][ZYRW:UTSRQPONMLKJIHG FE(CBA@?"=<;|98765.3t10/.-,+*)('&%$#"!b}|{zywZunsrqjoRglkjibgfeHcba`_ X]@[ZYXWVUTSRQPONMLK.IHGFEDCBA#9"=6;|92765.321r/.-,+$)j'&%$#"!~}|{zyxw vuXsrqponmlkMcLg`edcFa`_^]U>YXWVUTSRQPONMLKJI,GFEDC&A@?"=<;:981x54321 0/.-,+*)('&%f#"!~}`{^yxwpunsVqpinmfkNchgfe^cbaD_^][ZS<WVUTSRQPONMLKJI HG*EDCBA@?>=}5|92765v3210/.'n+*)('&%$#"!~}|{zywvutsrqpoQgPkdihgJedcba `_^W@[ZYXWVUTSRQPONMLK.IHGFE(CBA$?>=<;:981x543210/.-,+*)('&%f#"!~}`{^y rwvunsVkponmfkjiLgfedcba`YB][ZYXWVUTSRQPONM0KJIHGFEDC%;$?8=~;49870543 t10/.-,+*#j'&%$#"!~}|{zyxwvuXsrqponmlkMcLg`edcFa`_^][ZYRW:UTSRQPONMLK JIHGFE(CBA@?"=<;|987654321*/p-,+*)('&%$#"!~}|{^yxwvuXsVqpohmfkNihafe^c F[`_^]V[ZY<WVUTSRQPOHM0KJIHGFEDCBA@?>=<;|987654321q)p-&+*)j'&%$#"!~}v{ ^yxwvutsrqponmlkjiLgfedcba`_AW@[TYXW:UTSRQPONMLKDI,GFEDCBA@?>=<;:987x5 4321r/.-n+*)('&%$#"!x}`{zyxwvutsrqponmlkNihgfeHcFaZ_^]V[>SXWVUNSRQ4ONM LKJIHGFE>C&A@?>=<;:987654321r/.-,+*)('g}f#z!b}v{zyrwvuXsrqponmlkjibgJe dcba`_^][ZYXWVU8SRQPONMLK-C,G@EDC&A@?>=<;:9876/v3210/.-,+*)('&%$#d!~} |{^yxwZutsrqponmlkjcLgfedcba`_^][ZYXW:UTSRQ4O2MLKDIBG*ED=BA:?"7<;:927 65v3210/.-,+*)(!h%$#"!~}|{zyxwvutsVqponmlkjiKaJe^cbaD_^][ZYXWVUTM6QPO NMLKJIHGFEDCBA$?>=<;:987w/v3,10/p-,+*)('&%$#"!x}`{zyxwvutsrqponmlkNihg feHcbaD_^][ZYXWVUTSLQ4ONMLKJIHGFEDCBA@?"=<;:9z765v3210/.-,+*)('~%f#"! ~}|{zyxwvutsrqTonmlkjihgI_HcECY^]?ZYXWVUTSRQPONGL/JIHGFEDCBA@?>=<;:{ 876543210p(o,%*)(i&%$#"!~}|{zyxwpYtsrqponmlkjihgfedGba`_^A[Z=XWVUTSRQ PONMLKD-HGFEDCBA@?>=<;:98y65432s0q.',+*#(i~%$#"y~}|_zyxwvutsrqponmfOji hgfedcba`_^][Z=XWVUTSRQP2H1LEJ-HAFED=BA@#>=<;:987654321*q.-,+*)('&%$# "!~}|_zyxwvutsrTjSnglkjMhgfedcba`_^][ZSX;VUTSRQPONMLKJIHGF)DCBA@#>=<} :9876543210/.-,%*k('&%$#"!~}|{zyxwvYtsrqpSnQlkdihafI^cba`Y^]?ZYXWVUTS RQPONMLEJ-HGFEDCBA@?>=<;:98y6543210/.n&m*#('&g$#"!~}|{zyxwvutmrUponmlk jihgfedcba`C^][ZYXWV8N7RKPON1LKJIHGFEDCBA@?>=6}:9876543210/.-,+*k('&% $e"!~a|{zyxwvutsrqponmfOjihgfedcba`_^][Z=XWVUT7R5PONGLEJ-HG@ED=B%:?>= <5:98y6543210/.-,+*)('~g$#"!~}|{zyxwvutsrUponmlkjihJ`Id]bE`_X]UZYX;VU TSRQPONMLKJIHG@)DCBA@?>=<;:987654u210/.-,+*j"i&}$#"c~}|{zyxwvutsrqpong lOjihgfedcba`_^][Z=XWVUT7RQP3NMLKJIHGFEDCBA@?>7<}:9876543210/.-,+*k(' &%$e"c~}|uzsx[votsrkponQlkjihgfedcba`_^]UZ=XWVUTSRQPONMLKJIH+FEDCBA@? >~6}:3zx0543t10/.-,+*)('&%$#"!x}`{zyxwvutsrqponmlkNihgfedcbaCYB]V[ZY<W VUTSRQPONMLKJIHGFEDCBA@?>=<;:98765432+r/.-,+*)('&%$#"!~}`{zyxwZutsVqpo nmlkjihgfedcba`_^][ZYXWVUTSRQPONMLE.IHGFEDCBA@?>=<;:9z76543t1r/.-&+$) j'~%$#z!bw|{zyrwvuXsrqponmlkjihgfedcba`_^][ZYXWVUTSRQPONG0KJIHGFEDCBA @?>=<;|987654321q)p-&+l)('~%|#d!x}|{tyqvutslqpoRmlkjihgfedcba`_^][ZY XWVUTSRQPONMLKJIHA*EDCBA@?>=<;:98765v3210/.-,+k#j'~%$#d!~}|{zyxwvutsrq ponmlkjihgfedcba`_^][ZYRW:UTSRQPONMLKJIHGFE(CBA@?"=<;|9876543210/.-,+ *)('&%$#"!~}|{zyxwvutsrqjoRmlkjihgfedcba`_^]@[ZYXW:U8SRQJOHM0KDIHG@E(= BA@?8=<;|9876543210/.-,+*)('&%$#"!~}|{zyxwvutsrqjoRmlkjihgfedcba`_^]@[ ZYXWVUTS5K4OHMLK.IHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#z!b}|{zyxwvuts rqponmPkjihgfedcE[D_X][>YXWVUTSRQPONM0E.IHGFEDCBA@?>=<;:9z76543t10/p- ,+*)('&%$#"!bw`{zyxwvutsrqponmlkNihgfeHcFa`_X]V[>YRWVUNS6KPONMFKJI,GFE DCBA@?>=<;|3z76543210/.-,+*)('h%$#"!~}|{]swputsVqponmlkjihgfeH]Fa`_^] [ZYXWVUTSRQ4ONMLKJIHG)?(C<A@?"=<;:987654321r/(-n+*)('&%$#"!~}|{zywvu tsVqpoRmlkjihgfedcbaD_X]@[ZYXWVUTSRQPONMLK.IHGFE(C&A@?8=6;|92765.3t+0/ .-&+*)j'&%$#"!~}|{zywpuXsrqponmlkjihgfedcFa`_^][ZY;Q:UNSRQ4ONMLKJIHG FEDC&A:?"=<;:9876543210/.-n+*)('&%$#cyb}v{zywvutsrqponmlkNihaJedcba`_ ^][ZYXWVU8SRQPO2MLK.IHGFEDCBA@?>=~;:3z76543210/.-,+*)('h%$#"!b}`{zyrw puXslqpohmPejihg`edcFa`_^][ZYXWVU8SRK4ONMLKJIHGFEDCBA@?"=<;:98765u-t1 */p-,+$)"'h%|#"!x}`uzyxwputsVqponmlkjihgfeHcb[D_^][ZYXWVUTSRQPO2MLKJI HGFE'=&A:?>=~;:9876543210/p-,+$)j'&%$#"!~}|{zyxwvuXsrqpoRmlkNihgfedcba `_^]@[ZYRW:UTSRQPONMLKJIHGFE(CBA@?"=~;:92705v3,10/(-n%*)('~%$#d!~}|{zy xwvutsVqpohmPkjihgfedcba`_^][>YXWVUTSRQ3I2MFKJI,GFEDCBA@?>=<;|98705v3 210/.-,+*)('&%$#d!~}|{zyxwYoXslqpoRmlkjihgfedcbaD_^]U>YXWVUTSRQPONMLK JI,GFEDC&A@?"=<;:987654321r/.-,%l)('&%$#"!~}|{zyxwZutsrqToRmlkdibgJe^c baZ_BW[ZYRWVU8SRQPONMLKJIHG*EDCB;$?>=<;:9876543210/p-,+*)('&%e{d!x}|{ ^yxwvutsrqponmPkjihaJedcba`_^][ZYXWVU8SRQPONMLK-C,G@EDC&A@?>=<;:98765 v3210/(-n+*)('&%$#"!~}|{zywvutsVqpoRmlkjihgfedcbaD_^][TY<WVUTSRQPONM LKJIHG*EDCBA$?"=<;4927x5.321*/p',+*)"'&%f#"!~}|{zyxwvuXsrqpohmPkjihgfe dcba`_^][>YXWVUTSRQ3I2MFKJI,GFEDCBA@?>=<;|98765.3t10/.-,+*)('&%$#"!b} |{zyxwvuWmVqjonmPkjihgfedcba`_B][ZYXQ:UTSRQPONMLKJIHGFE(CBA@?"=<;|987 6543210/.-n+*)('&}f#"!~}|{zyxwvutsrqTonmlkNiLgfe^caD_X][TY<QVUTSLQPO 2MLKJIHGFEDCBA$?>=<;:3z76543210/.-,+*)('h%$#"!~}|{]swputsVqponmlkjihg feHcba`_^W@[ZYXWVUTSRQPONMLK.IHGFEDCBA#9"=6;:9z76543210/.-,+l)('&%$#z! b}|{zyxwvutsrqponmPkjihgJedcFa`_^][ZYXWVU8SRQPONMFK.IHGFEDCBA@?>=<;:9 z76543t1r/.-&+$)j'~%$#z!bw|{zyrwvuXsrqponmlkjihgJedcba`_X]@[ZYXWVUTSRQ PONMLK.IHGFEDCBA#9"=6;:9z76543210/.-,+l)('&%$#z!b}|{zyxwvutsrqponmPkji hgfedcE[D_X][>YXWVUTSRQPONM0KJIHGFED=&A@?>=<;:987654321r/.-,+l)('h%$# "!~}|{zyxwZutsrqpongPkjihgfedcba`_^][>YXWVU8S6QPOHMFK.IBGFE>C&;@?>=6; :9z76543210/.-,+l)('&%$#"yb}|{zyxwvutsrqponmPkjihgfedcE[D_X][>YXWVUTS RQPONM0KJIHGFED=&A@?>=<;:987654321r/.-,+*)('g}f#z!~}`{zyxwvutsrqpoRmlk jihgfe^cFa`_^][ZYXWVUTSRQ4ONMLK.IHG*EDCBA@?>=<;:9z76543210/(-n+*)('&% $#"!~}|{zywvutsVqTonmfkdiLgf_dcaD_X][TY<QVUTSLQPO2MLKJIHGFEDCBA$?>= <;:98705v3210/.-,+*)('&%$#d!~}|{zyxwYoXslqpoRmlkjihgfedcbaD_^][ZYXWPU 8SRQPONMLKJIHGFEDC&A@?>=<;:9y1x5.321r/.-,+*)('&%$#d!~}|{zyxwvoXsrqponm lkjihgfedcFa`_^]@[ZY<WVUTSRQPONMLK.IHGFEDCBA@9"=<;:9876543210/.-n+*)(' h%f#"y~}v{^sxwvunsrqTonmlkjihgfedcFa`_^][ZYXQ:UTSRQPONMLKJIHGFE(CBA@? >=<;{3z70543t10/.-,+*)('&%f#"!~}|{zyxqZutsrqponmlkjihgfeHcba`_^][=S<W PUTS6QPONMLKJIHGFE(CBA@?>=<;:927x543210/.-,+*)('&%f#"!~}`{zywvutsrqpo nmlkNihgfedcba`_X]@[ZYXWVUTSRQPONMLK.IHGFE(C&A@?8=6;|98165.3t1*/.-&+l# ('&%|#"!b}|{zyxwvutsrqTonmlkjihgfe^cFa`_^][ZYXWVUTSRQ4ONMLKJIHG)?(C<A @?"=<;:987654321r/.-,+*)('&%|#d!~}|{zyxwvutsrqpoRmlkjihgfeG]FaZ_^]@[ZY XWVUTSRQPO2MLKJIHGFEDCBA@9"=<;:9876543210/.-n+*)('h%$#d!~}|{zyxwvutsVq ponmlkjihgfed]Fa`_^][ZYXWVUTSRQ4ONMLK.I,GFE>C<A$?>7<;49z70543,1r).-,+ $)('h%$#"!~}|{zyxwZutsrqponmlkjihaJedcba`_^][ZYXWVU8SRQPONMLK-C,G@EDC &A@?>=<;:98765v3210/.-,+*)('&}f#"!~}|{zyxwvutsrqTonmlkjihgI_Hca`_B][ ZYXWVUTSRQ4ONMLKJIHGFEDCBA@?8=~;:9876543210/.-,+l)('&%f#"!b}|{zyxwvuts rqTonmlkjihgfedcba`_X]@[ZYXWVUTSRQPONMLK.IHGFE(CBA$?>=<;:9876543t10/.- ,+*)('&%$#"!x}`{zyxwvutsrqponmlkNihgfedcbaCYB]V[>YXQVUNS6QJONMFK.CHGFE >'%;@?>!<;:9876543210q.-,+*)('&%$#"!~}|uz]xwvutsrqponmlkjihKfedcba`_^@ V?ZSXWV9TSRQPONMLKJIH+FEDCBA@?>=<;:98765.u210/.-,+*)('&%$#"c~}|{z]xwvY tsrqponmlkjihKfedcba`_^][ZYXWVUN7RQPONMLKJIHGFEDCB%@?>=<}:{876/4-2s*/ .-,%*)(i&%$#"!~}|{zyx[vutsrqponmlkjihgfe^Gba`_^][ZYXWVUTSR5PONMLKJIH* @)D=B%:?>=<5:98y6543210/.-,+*k('&%$#"!~}|{zyxwvunWrqponmlkjihgfedcbE`_ ^][ZYX:P9TMRQP3NMLKJIHGFEDCB%@?>=<;:9876543210/.',m*)('&%$#"!~}|{zyx[ vutsrUponQlkjihgfedcba`C^][ZYXWVUTSRQPONMLEJ-HGFEDCBA@?>=<;:98y65432s 0q(-,+*#('&g$#"!~}|{zyxwvYtsrqponmlkjihgfedcb[`C^][ZYXWVUTSRQPON1LKJI HGFED&<%@9>!6;:981654u210/.-,+*)('&g$#"!~}|{zyxwvutsrqpinQlkjihgfedcba `_^]?ZYXWVUTSR4J3NGLKJ-HGFEDCBA@?>=<}:9876543210/.-,+*)('~g$#"!~}|{zy xwvutsrUponmlOjihKfedcba`_^][Z=XWVUTSRQPONMLKJIHGFE>'BA@?>=<;:9876543 2s0/.-,m*k('&}${"c~}v{zsxwvYtsrqponmlkjihKfedcba`_^][ZYXWVUTSL5PONMLK JIHGFEDCBA@#>=<;:9876v.u2+rp(-,+l)('&%$#"!~}|{^yxwvutsrqponmlkjihgf_Hc ba`_^][ZYXWVUTS6QPONMLKJI+A*E>CBA$?>=<;:9876543t10/.-,+*)('&%$#"!~}|{ tywvutsrqponmlkjihgJedcbaD_^]@[ZYXWVUTSRQPO2MLKJIHGFEDCBA@?>=<;:927x5 43210/.-,+*)('&%f#"!~}`{^yxwpunsVqjonmfkjiLgfedcba`_^][>YXWVUTSRQPONM LKJIHGFE>C&A@?>=<;:987654321r/.-,+*)('g}f#z!b}|uzyr[YotsrUponmlkjihgfe dGba`_^][ZYXWVUTSRQPONGL/JIHGFEDCBA@?>=<;:{876543210p(o,%*)(i&%$#"!~} |{zyx[vutsrqponmlkjihgfedcbaZC^][ZYXWVUTSRQPON1LKJIH+FED'BA@?>=<;:987 6w43210/.-,+*)('&%$#"!~}v_zyxwvutsrqponmlkjMhgfedGbE`_^WUZYX;VUTSRQPO NMLKJ-HGFEDCBA@?>=<;:9876543,s0/.-,+*)('&%$#"!~a|{zyxwvutVlUpiRPfkjiLg fedcba`_^][>YXWVUTSRQPONMLKJIHGFED=&A@?>=<;:987654321r/.-,+*)('g}f#z! ~}`{zyxwvutsrqpoRmlkjihgfedcba`_^][ZYXWPU8SRQPONMLKJIHGFEDC&A@?>=~;:9 z76543210/.-,+l)('&%$#"!~}|{zyxwvutsrqjoRmlkjihgfedcba`_^]@[ZYXW:UTS6Q PONMLKJIHGFE(CBA@?>=<;:9876543210/.-&+l)('&%$#"!~}|{zyxwZutsrqponmOeNi bgJedcaZCAW[Z=XWVUTSRQPONML/JIHGFEDCBA@?>=<;:987654-2s0/.-,+*)('&%$# "!~a|{zyxwvutVlUpinmlOjihgfedcba`_^A[ZYXWVUTSRQPONMLKJIHGFE>'BA@?>=<; :98765432s0/.-,m*)(i&%$#"!~}|{zyx[vutsrqponmlkjihgfedcba`_XA[ZYXWVUTS RQPONML/JIHGF)DCB%@?>=<;:987654u210/.-,+*)('&%$#"!~}|{zyr[vutsrqponmlk jihgfIdcba`_^]>T=XQV9TSLQPIN1LEJIHAF)>CBA@9"~6;:9z76543210/.-,+l)('&% $#"!~}|{zyxwvutsrqpiRmlkjihgfedcba`_^]@[ZYXWVUTS5K4OHMLK.IHGFEDCBA@?>= ~;:9876543210/.-,+*)('&%$#z!b}|{zyxwvutsrqponmPkjihgJedcFa`_^][ZYXWVU 8SRQPONMLKJIHGFEDCBA@?>=<;49z76543210/.-,+*)('h%$#"!b}|{^yxwvutsrqponm Pkjihgfedcba`_^][ZYXWVUTSLQ4ONMLKJIHGFEDCBA@?"=<;:98765u-t1*/.-n+*)(' &%$#"!~}`{zyxwvutsrqponmlkjihgfedcaD_^][ZYXWVUTSRQPO2MLKJIHGFE'=&A:? >=~;:9876543210/p-,+*)('&%$#"!~}|{zyxwvutsrkTonmlkjihgfedcba`_B][ZY<W VU8SRQPONMLKJIHG*EDCBA@?>=<;:9876543210/.-,%l)('&%$#"!~}|{zyxwZutsrqTo RmlkdibgfeHcba`_^][ZYXW:UTSRQPONMLKJIHGFEDCBA@?>=<5|9876543210/.-,+*) j'&%$#"!~}_u^yrwZutmrqjoRmfkjibgJ_dcbaZCAW[Z=XWVUTSRQPONML/JIHGFEDCBA @?>=<;:987654321*q.-,+*)('&%$#"!~}|_zyxwvutsrTjSnglkjMhgfedcba`_^]?ZY XWVUTSRQPONMLKJIHGFEDCBA@9>!<;:9876543210/.-,m*)('&g$#"c~}|{zyxwvutsrU ponmlkjihgfedcba`_^][ZYXWVOT7RQPONMLKJIHGFEDCB%@?>=<}:{876/4-2s*/.-,% *)(i&%$#"!~}|{zyx[vutsrqponmlkjihgfedcba`_^]UZ=XWVUTSRQPONMLKJIH+FEDC BA@?>~6}:38y654-2+0q(-,+*#('&g$#"!~}|{zyxwvYtsrqponmlkjihgfedcba`_^][ ZSX;VUTSRQPONMLKJIHGF)DCBA@?>=<|4{81654u210/.-,+*)('&g$#"!~}|{zyxwvuts rqponmlkjihg`Idcba`_^][ZYXWVUT7RQPON1LKJ-HGFEDCBA@?>=<}:9876543210/.- ,+*)('&%$#"!~}v_zyxwvutsrqponmlkjMhgfedGbE`_X]UZ=RWVUTMRQP3NMLKJIHGFE DCB%@?>=<;:9876543210/.-,+*)('&%|e"!~}|{zyxwvutsrqpSnmlkjihgfH^Gb[`_^A [ZYXWVUTSRQP3NMLKJIHGFEDCBA@?>=<;:9876543,s0/.-,+*)('&%$#"!~a|{zyxwvu tVlUpinmlOjihgfedcba`_^A[ZYXWVUTSRQPONMLKJIHGFEDCBA@9>!<;:9876543210/ .-,m*)('&g$#"c~}|{zyxwvutsrUponmlkjihgfedcba`_^][ZYXWVUTMR5PONMLKJIHG FEDCBA@#>=<;:{8y654-2+0q.-&+*#(i~%$#"y~}|_zyxwvutsrqponQlkjihgfedcba`_ ^][ZYXWVUTSRQPIN1LKJIHGFEDCBA@?>=<}:98765432r*q.',m*)"'&}$#"c~}|{zyxw vutsrUponmlkjihgfedcba`_^][ZYXWVUTMR5PONMLKJIHGFEDCBA@#>=<;:9876v.u2+ 0/.o,+*)('&%$#"!~a|{zyxwvutsrqponmlkjihgfedcba`_XA[ZYXWVUTSRQPONML/JI HGF)DCB%@?>=<;:987654u210/.-,+*)('&%$#"!~}|{zyxwvutslUponmlkjihgfedcba `C^][Z=X;VUTMRKP3NMFKJCH+F?DCB;@?>!<;:9876543210q.-,+*)('&%$#"!~}|{zy xwvutsrqpohQlkjihgfedcba`_^]?ZYXWVUTSR4J3NG0.DIHG*EDCBA@?>=<;:9z76543 210/.-,+*)('&%$#"!~}|{zyxqZutsrqponmlkjihgfeHcba`_^][=S<WPUTS6QPONMLK JIHGFE(CBA@?>=<;:9876543210/.-,+*)('&%|#d!~}|{zyxwvutsrqpoRmlkjiLgfeHc ba`_^][ZYXW:UTSRQPONMLKJIHGFEDCBA@?>=<;:98705v3210/.-,+*)('&%$#d!~}|{ ^ywvotslqTinmlkdihgJedcba`_^][ZY<WVUTSRQPONMLKJIHGFEDCBA@?>=<;:927x5 43210/.-,+*)('&%f#"!~}|{zy[qZunsrqTonmlkjihgfedcFa`_^][ZYXWVUTSRQPONM LKJIHGFEDC<A$?>=<;:9876543210/p-,+*)('&%e{d!x}|{^yxwvutsrqponmPkjihgfe dcba`_^][ZYXWVUTSRQPONMLE.IHGFEDCBA@?>=<;:9z76543t10/p-,+*)('&%$#"!b} |{zyxwvutsrqponmlkjihgfedcba`_^W@[ZYXWVUTSRQPONMLK.IHGFE(C&A@?8=6;|981 65.3t+0/.-&+*)j'&%$#"!~}|{zywvutsrqponmlkjihgfedcba`_^][ZYXQ:UTSRQPO NMLKJIHGFE(CBA@?>=<;{3z705v32+0/(-,+l)('&%$#"!~}|{^yxwvutsrqponmlkjihg fedcba`_^][ZS<WVUTSRQPONMLKJIHG*EDCBA@?>=}5|92765v3210/.-,+*)('h%$#"! ~}|{zyxwvutsrqponmlkjihgfedcaD_^][ZYXWVUTSRQPO2MLKJI,GFE(CBA@?>=<;:9 87x543210/.-,+*)('&%$#"!~}|{zyxwvutslqTonmlkjihgfedcba`_B][ZY<WVU8SRQ PONMLKJIHG*EDCBA@?>=<;:9876543210/.-,+*)('&%|#d!~}|{zyxwvutsrqpoRmlkji hgfeG]FaZ_B]UZYRW:OTSRQJ31GLKJ-HGFEDCBA@?>=<}:9876543210/.-,+*)('&%$# "!~}|{zyxqvYtsrqponmlkjihgfedGba`_^][Z<R;VOTSR5PONMLKJIHGFED'BA@?>=<; :9876543210/.-,+*)('&%$#"!xa|{zyxwvutsrqponmlOjihgfIdcbE`_^][ZYXWVUT7 RQPONMLKJIHGFEDCBA@?>=<;:987654321*q.-,+*)('&%$#"!~}|_zyxwvYtWrqjonglO dihgf_dcbE`_^][ZYXWVUT7RQPONMLKJIHGFEDCBA@?>=<;:987654321*q.-,+*)('&% $#"!~}|_zyxwvutsrTjSnglkjMhgfedcba`_^]?ZYXWVUTSRQPONMLKJIHGFEDCBA@?>= <;:92y6543210/.-,+*)('&g$#"!~}|{zr[votsrUponmlkjihgfedGba`_^][ZYXWVU TSRQPONMLKJIHGFEDCBA@9>!<;:9876543210/.-,m*)('&g$#"c~}|{zyxwvutsrUponm lkjihgfedcba`_^][ZYXWVUTSRQPONGL/JIHGFEDCBA@?>=<;:{87654u2s0/.',%*k(' ~%${"cx}|{zsxwvYtsrqponmlkjihKfedcba`_^][ZYXWVUTSRQPONMLKJIHGFED=B%@? >=<;:9876543210q.-,+*)('&f|e"y~a|{tyxqvutWrqponmlkjihgfIdcba`_^][ZYXW VUTSRQPONMLKJIHGFEDCB;@#>=<;:9876543210/.o,+*)('&%$dzc~w|{z]xwvutsrqpo nmlOjihgfedcba`_^][ZYXWVUTSRQPONMLKJIHG@)DCBA@?>=<;:987654u210/.o,+*k ('&%$#"!~}|{z]xwvutsrqponmlkjihgfedcba`_^][ZYXWVUN7RQPONMLKJIHGFEDCB% @?>=<}:98y6543210/.-,+*k('&%$#"!~}|{zyxwvutsrqponmlkjihgfedcE`_^][ZY XWVUTSRQP3NMLKJIHGF(>'B;@#>=<5:38y6/432+0q(-,+*#jh~%$#d!~}|{zyxwvutsVq ponmlkjihgfedcba`_^][ZYXWVUTSRQPONG0KJIHGFEDCBA@?>=<;|98765v3210/.-,+ *)('&%$#"caa|{zyxwvutWUUponmlkjihKIIdcba`_^]?==XWVUTSRQP311LKJIHGFED' %%@?>=<;:98yww43210/.-,mkk('&%$#"!~a__zyxwvutsrUSSnPlkjiLaJedcba`CXA> ZS<QV97ML53O20FE.,,**((&&$$">=~5|9y70w.32s*q.n,+*)('h}f#"!~}|{z]r[vXtm VkpSQgfOMiLJ`_HFbECYXA??==;;99775Q42HG0.JIHG*?(C%A:#8=~|43zx6wu-,sqqoo mmkkiig%fdzyb`|{zyqZutsrqponmlO*ihgfedcba`_^][ZYXWVUTS6QPONML/--gGFE DCBA@#!!<;:987654uss0/.-,+*)(igg$#"!~}|{z][[vutsrqponQOOjihgfedcbECC^] [ZYXWV977RQPONMLKJ-++FEDCBA@?>!}}:98765432sqq.n,+*)j!h%$#"!~av_zxqZo tWUkjSQQOkNLbaJHHFbECYXA??==;;997SR5J3N0LE.CH+)?>'%%##!!}}{98y0w4t210/ .-n%l)('&%$#"cxa|^zsqvYWmlUSoRPfeNLLJJHdGE[ZCA]@>TS<::88664P31GF/-IHG F)>'B$@9"7<}{32ywwuussqqo-nl$#jhhffddb~a_ut][wvutWlUponmlkjihgJ%dcba`_ ^][ZY<WVUTSR533mMLKJIHGF)''BA@?>=<;:{yy6543210/.omm*)('&%$#"caa|{zyxw vutWUUponmlkjihKIIdcba`_^]?==XWVUTSRQP311LKJIHGFED'%%@?>=<;:98yww4t21 0/p'n+*)('&g|e"b~w`uz][qpYWsVTjiRPPNNLLJJHdcF[D_A]V?TY<:PO86R53IH1//-- ++))'CB%:#>~<;:987x/v3210/.-,m$k(h&}f{"cawv_]yZpoXVrUSihQOkNLbaJHHFFD `CAWV?==;;9U86LK42NMLK.C,G)E>'<A$"87~||zzx6wu-,sqqoom+lj"!hf$#"!bw`{zy xwvutsrU0onmlkjihgfedcba`_B][ZYX;99srRQP3NMLKJIHG*((CBA@?>=<;|zz76543 210/pnn+*)('&%$#dbb}|{zyxwvuXVVqponmlkjiLJJedcba`_^]@>>YXWVUTSRQ422MLK JIHGFE(&&A@?>=<;:9zxx5u3210q(o,+*)('h}f#c!xav{^rqZXXVrUSihQOkNLbaJHHF FDDBB@[>S<W9UN7LQ42HG0..,H+)?>'%A$"87~||zzxxvvt21r)p-m+*)('&g|e"!~}|{ zyqZuWslUjoRPfeNLhKI_^GEaDBXW@>Z=;QP97S64JI20L/-CB+))''%A$"87~|:987x/ v3s1*q(-nl$#jhhf$ecyxa_{^rqZXXVVTpSQgfOMihgfI^Gba`_^][ZY<uVUTSRQPONM LKJIHGFED'BA@?>=~||X87654321rpp-,+*)('&%fdd!~}|{zyxwZXXsrqponmlkNLLgfe dcba`_B@@[ZYXWVUTS644ONMLKJIHG*((CBA@?>=<;|zz76543210/pnn+*)('&%$#dbb} _{zyx[pYtsrqpoRgPkMibK`eHF[DB^A?UT=;W:8NM64P31GF/--++))''%%#?>!6}:z81 x/4us+*qo-nl$#jhhffddbb``^zyqZuWsrqponQfOjihgfedcF[D_A]V?TY<:PO8664P3 1GF/-I,*@?(&&$@#!76}{{yyw5vt,+rp.-,+l#j'g%|ez!b`vu^\ZvYWmlUSoRPfeNLLJ JHHFFD`CAWV?=YXWV9N7RQPONMLKJI,eFEDCBA@?>=<}:98765vttP0/.-,+*)jhh%$#"! ~}|{^\wvutsrqpoRPPkjihgfedcFDD_^][ZYXW:88SRQPONMLK.,,GFEDCBA@?"~~;:9 876543trr/.-,+*)('hff#"!~}|{zyZZuWsrqpShQlkjihgJ_HcEaZCX]@>TS<:V97ML5 331M0.DC,**((&&$$""~<;|3z7w5.u,1rp('nllj(ig}|eccaa__]][[YutWlUpRnmlkji LaJedcba`_^AV?Z<XQ:OT75KJ311//--+G*(>=&$@#!76}{{yyw5vt,+rp.-,+l#j'g%|e z!b`vu^xwvuXmVqponmlkjihK&edcba`_^][ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<; :987x543210qooK+*)('&%$ecc~}|{zyxwvYWWrqponmlkjMKKfedcba`_^A??ZYXWVUTS R533NMLKJIHGF)''BA@?>=<;:{yy6543210/.omm*)('&%$#"caa|{zyxwvutWUUpRnmlk NcLgfedcbEZC^@U>SX;9ON7553O20FE.,H+)?>'%A$"87~||zzxxvvt21r)p-m+$k"'hf |{db~a_ut][wZXnmVTTRRPPNNLhgJ_HcEa`_^]?T=XWVUTSRQ4I2M/KD-BG*(>=&$@#!7 6}{9zx0/vt2sq)(om+lj"!hffddb~a_ut][[YuXVlkTRnmlkNcLgIe^GaDBXW@>><X;9O N755331M0.DC,**(D'%;:#!=<;:{2y6543210/.-nI*k('&%$#dbb>|{zyxwvuXVVqponm lkjiLJJedcba`_^]@>>YXWVUTSRQ422MLKJIHGFE(&&A@?>=<;:9zxx543210/.-nll)(' &%$#"!b``{zyxwvutsVTTonmlkjihgJHHcEa`_^AV?ZYXWVU8M6Q3OH1FK.,BA*((&B%#9 8!};|z21xvvttrrppn,+l#j'g%|ez!b`vu^\ZvYWmlUSoRPfeNLLJJHHFFD`_BW@[=YXW VUT7L5PONMLKJI,A*E'C<%:?"~65|zzx6wu-,sqqo-nl$#jhhf$ecyxa_{zyx[pYtVrkTi nQOedMKKIeHF[DB^][>S<WVUTSRQPON1jKJIHGFEDCBA@?>=<;:9876543210/.-,+*) ('&%$#"!~}|_zyxwvuXVV2ponmlkjiLJJedcba`_^]@>>YXWVUTSRQ422MLKJIHGFE(&&A @?>=<;:9zxx543210/.-nll)('&%$#"!b``{zyxwvutsVTTonmlkjihgJHHcba`_^][>< <W9UTSR5J3NMLKJI,A*E'C<%:?"~65|zzx6wu-,sq/pn&%ljjhhffddb~}`u^y[wpYnsVT jiRPlOMcbKIIGGEECCA]?T=X:VUTSRQ4I2MLKJIHGF)>'B$@9"7<}{32yw5vt,+rppn,m k#"igge#dbxw`^z][qpYWWUqTRhgPNjihgJ_HcEaZCX]@>TS<:V97ML5331M0.DC,*FEDC &;$?>=<;:9876wR3210/.-,+*)('&%$#"!~}`{zyxwvYWW3qponmlkjMKKfedcba`_^A?? ZYXWVUTSR533NMLKJIHGF)''BA@?>=<;:{yy6543210/.omm*)('&%$#"caa|{zyxwvutW UUponmlkjihKIIdcba`_^]?==X:VUTS6K4ONMLKJ-B+F(D=&;@#!76}{9zx0/vttrrppn nl*)j!h%e#zcx}`^tsZvYWmlUSSQQOOMMKgfI^GbD`_^][>S<WVUTSRQP3H1L.JC,AF) '=<%#?"~65|z8yw/.us1rp('nllj(ig}|ec!b`vu^x[YonWUUSoRPfeNLhgfeH]FaC_XA V[><RQ:8866442N1/ED-+G*(>=&$$">!}54{y7654u,s0/.-,+*)('hC$e"!~}|{^\8vu tsrqpoRPPkjihgfedcFDD_^][ZYXW:88SRQPONMLK.,,GFEDCBA@?"~~;:9876543trr/ .-,+*)('hff#"!~}|{zyZZutsrqponmPNNihgfedcbaDBB]?[ZYX;P9TSRQPO2G0K-IB+ @E(&<;$""~<}{32ywwu3tr*)pnnlljjhhf$#dyb}_{t]rwZXnmVTTRRPPNjMKa`IGGEECC AA?[Z=R;V8TSRQPO2G0KJIHGFED'<%@">7~5:{y10wu3tr*)pn,mk#"igge#dbxw`^z][q pYWWUqTRhgPNjihgJ_HcEaZCX]@>TS<::8866442N1/ED-++)E(&<;$">=<;|3z7654321 0/.oJ+*)('&%$#"!~}|{zyxwvutsrqponmPkjihgfIGG#a`_^][Z=;;VUTSRQPON1//JI HGFEDCB%##>=<;:9876wuu210/.-,+*kii&%$#"!~}|_]]xwvutsrqpSQQlkjihgfedGEE `_^][ZYX;99TSRQPONML/--H*FEDC&;$?>=<;:{2y6v4-t+0qo'&mkki'hf|{dbb``^^ ZZXtsVkToQmfOdiLJ`_HFFDDBB@@>><XW:O8S5QPONML/D-HGFEDCBA$9"=};4{27xv.- trrp.om%$ki'hf|{db~a_ut][wZXnmVTpSQgfOMMKgJH^]FD`_^]@U>Y;WP9NS64JI200. J-+A@)'C&$:9"~~||z8yw/.ussq/pn&%lj('&%f{d!~}|{zyxwvY4srqTonmlkjMKK'edc ba`_^A??ZYXWVUTSR533NMLKJIHGF)''BA@?>=<;:{yy6543210/.omm*)('&%$#"caa|{ zyxwvutWUUponmlkjihKIIdcba`_^]?==XWVUTSRQP311L.JIHG*?(CBA@?>!6}:z81x/ 4us+*qoom+lj"!hffddbb``^^\ZvuXmVqSohQfkNLbaJHHFbECYXA??==;;9977553ON1 F/J,HGFEDC&;$?>=<;:98y0w4t2+r).om%$kiiggeec!b`vu^\ZvYWmlUSSQmPNdcLJfe dcF[D_A]V?TY<:PO86644220L/-CB+))''%%#?"~65|z8765v-t10/.-,+*)(iD%$#"!~} |{zyxwvutsrqpoRmlkjihKII%pba`_^][ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:987 654RQ     

Статья по теме 🏆 Самые популярные языки программирования 2023

WhiteSpace – язык для спецагентов

10 samyh strannyh jazykov programmirovanija 296826c - 10 самых странных языков программирования

Язык программирования WhiteSpace

WhiteSpace был изобретен для агентов спецслужб: код, написанный на этом языке, совершенно невидим, потому что состоит исключительно из пробелов, табуляции и переводов строк. «Увидеть» его можно только после выделения мышью. При этом любой видимый текст интерпретатор считает комментариями. Вот пример Hello, World на WhiteSpace:

         Hello,[Space]world![Space][Space][Tab][Space][Space][Tab][Space][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Space][Tab][Space][Tab][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Tab][Tab][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Tab][Tab][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Tab][Tab][Tab][Tab][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Space][Tab][Tab][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Space][Space][Space][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Tab][Space][Tab][Tab][Tab][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Tab][Tab][Tab][Tab][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Tab][Space][Space][Tab][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Tab][Tab][Space][Space][LF] [Tab][LF][Space][Space] [Space][Space][Space][Tab][Tab][Space][Space][Tab][Space][Space][LF] [Tab][LF][Space][Space] [LF][LF][LF]     

А так выглядит код с «подсветкой синтаксиса»:

10 samyh strannyh jazykov programmirovanija 7e3df13 - 10 самых странных языков программирования

WhiteSpace – выбор Джеймса Бонда и Человека-невидимки

Ook! – язык для орангутангов

10 samyh strannyh jazykov programmirovanija ea13828 - 10 самых странных языков программирования

Язык программирования Ook!

Ook! – Brainfuck’оподобный язык, практически клон; единственное отличие в том, что в ЯП для орангутангов есть команда «дай указателю памяти банан»:

10 samyh strannyh jazykov programmirovanija f223ef7 - 10 самых странных языков программирования

Сравнение синтаксиса Brainfuck и Ook!

Hello, World на Ook! выглядит так:

         Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.     

И если этот код напомнил вам о чем-то из «Игры престолов», то спешим заверить: в честь Ходора создали несколько одноименных языков, вот один из них. Так, например, на языке Hodor выглядит запуск сервера:

         $HODOR: hodor? Hodor?!? HODOR. rhodor? Hodor Hodor  = rhodor? Hodor!?! hodor!? Hodor? rhodor? ('hodor? Hodor?!? HODOR. rhodor? Hodor Hodor '); $HODOR: HODOR HODOR. HODOR.  = hodor? Hodor?!? HODOR. rhodor? Hodor Hodor ();  HODOR HODOR. HODOR. .hodor! hodor? hodor. ('/', HoDoRHoDoR (rhodor? Hodor!?! , rhodor? Hodor ) {   rhodor? Hodor .Hodor hodor? HODOR? d('Hhodor? Hodor!? Hodor!? o Hooodorrhodor orHodor!? d!'); });  $HODOR: Hodor hodor? rHodor?! hodor? r = HODOR HODOR. HODOR. .Hodor!? Hodor? Hodor hodor. hodor? HODOR? (3000, HoDoRHoDoR () {    $HODOR: hoHodor hodor.  = Hodor hodor? rHodor?! hodor? r.HODOR ddrhodor? Hodor Hodor ().HODOR ddrhodor? Hodor Hodor ;   $HODOR: HODOR. orhodor.  = Hodor hodor? rHodor?! hodor? r.HODOR ddrhodor? Hodor Hodor ().HODOR. orhodor. ;    hodor.hod('HooodorrHodor Hodor?!? HODOR Hodor. HODOR. Hodor!? hodor?  HODOR HODOR. HODOR.  Hodor!? Hodor? Hodor hodor. hodor? HODOR? Hodor? HODOR? hodor!  HODOR hodor.  hhodor. hodor. HODOR. ://%Hodor :%Hodor ', hoHodor hodor. , HODOR. orhodor. );  });     

Статья по теме 🐕🖥️ 16 универсальных идей для пет-проектов вне зависимости от языка

Chef – язык программирования для настоящих гурманов

10 samyh strannyh jazykov programmirovanija 0bc4365 - 10 самых странных языков программирования

Язык программирования Chef

Программы на Chef выглядят как кулинарные рецепты. Код программы состоит из отдельных блоков с перечнем переменных и их значений, а также инструкций по обработке. Переменные во всех случаях обозначаются именами реальных продуктов. Язык достаточно функционален и подходит для написания сложных программ. Chef – отличный вариант для всех, увлеченных нетривиальной кулинарией – этот код для Hello, World! при желании можно испечь, и результат будет вкусным:

         Hello World Cake with Chocolate sauce.  This prints hello world, while being tastier than Hello World Souffle. The main chef makes a " world!" cake, which he puts in the baking dish. When he gets the sous chef to make the "Hello" chocolate sauce, it gets put into the baking dish and then the whole thing is printed when he refrigerates the sauce. When actually cooking, I'm interpreting the chocolate sauce baking dish to be separate from the cake one and Liquify to mean either melt or blend depending on context.  Ingredients. 33 g chocolate chips 100 g butter 54 ml double cream 2 pinches baking powder 114 g sugar 111 ml beaten eggs 119 g flour 32 g cocoa powder 0 g cake mixture  Cooking time: 25 minutes.  Pre-heat oven to 180 degrees Celsius.  Method. Put chocolate chips into the mixing bowl. Put butter into the mixing bowl. Put sugar into the mixing bowl. Put beaten eggs into the mixing bowl. Put flour into the mixing bowl. Put baking powder into the mixing bowl. Put cocoa  powder into the mixing bowl. Stir the mixing bowl for 1 minute. Combine double cream into the mixing bowl. Stir the mixing bowl for 4 minutes. Liquify the contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. bake the cake mixture. Wait until baked. Serve with chocolate sauce.  chocolate sauce.  Ingredients. 111 g sugar 108 ml hot water 108 ml heated double cream 101 g dark chocolate 72 g milk chocolate  Method. Clean the mixing bowl. Put sugar into the mixing bowl. Put hot water into the mixing bowl. Put heated double cream into the mixing bowl. dissolve the sugar. agitate the sugar until dissolved. Liquify the dark chocolate. Put dark chocolate into the mixing bowl. Liquify the milk chocolate. Put milk chocolate into the mixing bowl. Liquify contents of the mixing bowl. Pour contents of the mixing bowl into the baking dish. Refrigerate for 1 hour.     

Piet – язык программирования для абстракционистов

10 samyh strannyh jazykov programmirovanija 6be1df3 - 10 самых странных языков программирования

Язык программирования Piet

Piet – визуальный язык для ценителей абстрактного искусства. Создан и назван в честь художника-абстракциониста Пита Мондриана. Код пишется с помощью цветных блоков, каждый блок может состоять из 20 оттенков, и каждый цвет обрабатывается по-своему.

10 samyh strannyh jazykov programmirovanija 3f14efe - 10 самых странных языков программирования

Цвета, которые использует Piet

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

Любопытно, что Hello, World! на Piet выглядит скорее как Goodbye, World:

10 samyh strannyh jazykov programmirovanija 4e41b39 - 10 самых странных языков программирования

Увеличенная версия Hello, World! на Piet

Существуют более продвинутые диалекты языка – Piet++ и 🅿🅸🅴🆃.

LOLCODE – язык для тех, у кого лапки

10 samyh strannyh jazykov programmirovanija 6310c32 - 10 самых странных языков программирования

Язык программирования LOLCODE

Сначала мемные котики обзавелись полноценным языком (здесь опубликовано лингвистическое исследование LOLspeak в pdf) и «священным писанием», а затем, естественно, им понадобился собственный язык программирования. Синтаксис LOLCODE основан на кошачьем сленге, и одновременно пародирует Cobol. Есть несколько онлайн IDE, исполняющих LOLCODE, и туториалов по «разработке» на мемном языке тоже хватает.

10 samyh strannyh jazykov programmirovanija 043b457 - 10 самых странных языков программирования

ArnoldC – язык для поклонников Терминатора

10 samyh strannyh jazykov programmirovanija 8864cf7 - 10 самых странных языков программирования

Язык программирования ArnoldC

ArnoldC написан на Scala, и все команды в нем основаны на лаконичных цитатах из фильмов легендарного губернатора. Hello, World на ArnoldC выглядит так:

10 samyh strannyh jazykov programmirovanija 626508c - 10 самых странных языков программирования

Синтаксис языка впечатляет:

10 samyh strannyh jazykov programmirovanija c16e4a6 - 10 самых странных языков программирования

Синтаксис языка ArnoldC

Java2k – для тех, кто считает Java сложным языком

10 samyh strannyh jazykov programmirovanija 12beb1b - 10 самых странных языков программирования

Язык программирования Java2k

Java2k – язык вероятностный: даже встроенные функции на нем могут выполняться, а могут и нет. По оценке автора языка, вероятность возврата корректного результата встроенными функциями не превышает 90%. IDE для запуска кода на Java2k называется, логично, DIE. Написанные на Java2k программы выдают непредсказуемый результат при каждом запуске, и могут завершаться случайным образом – так автор реализовал сборку мусора. Hello, World на Java2k выглядит почти так же страшно, как и на Malbolge:

10 samyh strannyh jazykov programmirovanija c8c5f56 - 10 самых странных языков программирования

Hello, World на Java2k

Velato – язык программирования для поклонников джаза

10 samyh strannyh jazykov programmirovanija 912eda3 - 10 самых странных языков программирования

Язык программирования Velato

Velato предоставляет уникальную возможность: писать музыку и программный код одновременно. В качестве исходного кода Velato использует MIDI-файлы, и поскольку язык отличается большой гибкостью, этот код действительно может звучать как вполне гармоничная музыка с оттенком альтернативного джаза. Так выглядит Hello, World на Velato:

10 samyh strannyh jazykov programmirovanija 71c630c - 10 самых странных языков программирования

Hello, World на Velato

А так он звучит:

Команды Velato определяются интервалами между нотами: тактовый размер, тональность, длительность нот и другие аспекты MIDI-файла игнорируются компилятором. Если две ноты играются как аккорд без паузы между ними, то сначала интерпретируется та, что идeт первой в MIDI-файле. Чтобы код на Velato звучал более естественно и гармонично, можно изменять тональность между любыми двумя командами с помощью специального ключевого слова: это позволяет программисту выбрать начальную высоту тона, которая лучше впишется в мелодию.

Есть и другие языки, использующий музыкальные ноты, например Fugue и Musical notes, но Velato пока остается самым продвинутым.

А вы когда-нибудь программировали на эзотерическом языке? Или, возможно, даже пробовали создать собственный? Расскажите в комментариях!

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close