Езотеричні мови програмування - це мінімалістичні мови, створені як доказ концепції та / або виклику як для програмування мови, так і для написання для неї. Давайте подивимося огляд деяких з них:
Brainfuck
Це найвідоміший і найпопулярніший, його синтаксис досить простий:
+ + + + + + + + + + [ Цикл для початку спогадів (повторюється 10 разів) >+++++++>+ + + + + + + + + +>+++++++++++>+ + +>+<<<<- 70 100 110 30 10 ] >++. "Н" (72) 1 >>+. 'або' (111) 3 ---. `` l '' (108) 3 <---. "а" (97) 2 >>++. простір (32) 4 <+. `` m '' (109) 3 ++++++++. 'u' (117) 3 -------. 'n' (110) 3 <+ + +. 'd' (100) 2 >+. 'або' (111) 3 >+. "!" (33) 4 >. '\ n' (10) 5
Щоб пояснити його синтаксис, найкраще звернутися до інших мов програмування. Так у його сторінку у Вікіпедії надайте нам цю таблицю еквівалентностей, у якій ptr еквівалентно символу без підпису:
епізод | C | Perl |
---|---|---|
> | ++ ptr; | $ покажчик ++; |
< | –Птр; | $ покажчик–; |
+ | ++ * ptr; | $ tape [$ pointer] ++; |
- | - * ptr; | $ tape [$ pointer] -; |
. | путчар (* ptr); | друк chr $ tape [$ pointer]; |
, | * ptr = getchar (); | $ tape [$ pointer] = ord (<>); |
[ | while (* ptr) { | while ($ tape [$ pointer]) { |
] | } | } |
Ой!
Він базується на попередньому, але замість цього використовує словосполучення Ой?, Ой! y Також. Це пародія на бібліотекаря Дисковий світ, який перетворюється на орангутанг і може вимовляти лише ці три слова. Давайте розглянемо шматок коду.
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.
Нібито ця "програма", якою вона займається, пише типовий "привіт світ".
Befunge
На мою думку, найбільш оригінальна з усіх, її структура управління потоком базується на стрілках, які вказують програмі, куди йти. Крім того, це значно полегшує створення мутантного коду (коду, який модифікується сам):
vv << 2 ^ v <v13v4 ^ ^ >>?>?> 5 ^ vv v97v6 vv <8. >> ^ ^
Наведений вище код - це нескінченний генератор випадкових чисел, який генерує число від 1 до 9. Набагато читабельніше, ніж попередні.
Malbolge
Тут у нас є мова програмування, створена так, щоб дратувати і не читати (ні, це не так C, і ні, це не так Perl). Є про Malbolge, ім'я якого походить від 8-го кола пекла в Росії Божественна комедія. Ось "привіт світ" (або ось що мені сказали):
(=<`:9876Z4321UT.-Q+*)M'&%$H"!~}|Bzy?=|{z]KwZY44Eq0/{mlk**
hKs_dG5[m_BA{?-Y;;Vb'rR5431M}/.zHGwEDCBA@98\6543W10/.R,+O<
Lolcat
Простий жарт. Давайте подивимось ваш код:
ХАІ CAN HAS STDIUM? Я МАЮ VAR IM IN YR LOOP UP VAR!!1 VISIBLE VAR IZ VAR ВЕЛИКІ ЧАСТИНА 10? KTHX IM ВИХІД YR LOOP До побачення
Оскільки він набагато читабельніший, ніж попередні мови програмування, я дозволю вам здогадатися, що він повинен робити. 😉
ІНТЕРКАЛ
DO ,1 <- #13 БУДЬ ЛАСКА, DO ,1 ПІДСТ #1 <- #238 DO ,1 ПІДСТ #2 <- #108 DO ,1 ПІДСТ #3 <- #112 DO ,1 ПІДСТ #4 <- #0 DO ,1 ПІДСТ #5 <- #64 DO ,1 ПІДСТ #6 <- #194 DO ,1 ПІДСТ #7 <- #48 БУДЬ ЛАСКА, DO ,1 ПІДСТ #8 <- #22 DO ,1 ПІДСТ #9 <- #248 DO ,1 ПІДСТ #10 <- #168 DO ,1 ПІДСТ #11 <- #24 DO ,1 ПІДСТ #12 <- #16 DO ,1 ПІДСТ #13 <- #162 БУДЬ ЛАСКА, READ OUT ,1 БУДЬ ЛАСКА, ДАЙ UP
Треба сказати, що деякі з цих мов програмування дуже корисні для вивчення деяких комп’ютерних концепцій. Наприклад, Brainfuck це ідеально підходить для вивчення покажчиків.
Я майже віддаю перевагу двійковому коду
Так, я однозначно вважаю за краще програмувати в двійковому або в асемблері безпосередньо, ви можете робити що завгодно (мови високого рівня врешті-решт працюють на процесорі), але цікавим у езотеричних мовах є проблема, яку вони представляють. До речі, дорожник (автору цієї статті), ти мене злиш. Як C та Perl нечитабельними та дратуючими? Яке нестерпне правопорушення !! Яке обурення! Але якщо C чудовий, в perl я не програмував, але я бачив хороші коментарі щодо цієї мови, тому що, мабуть, він дуже підходить для обробки файлів, рядків та цих стручків, наприклад для експлойтів це цілком непогано, хоча cy python в експлойтах працює добре ...
Saludos!
Чоловіче, мова C та perl була жартом, і так, вони цілком читабельні мови, дуже практичні та "красиві" у правильних руках. Звичайно, в C я бачив, що деякі люди в підсумку створюють клубок незрозумілого коду спагеті, і без вести облік. Що стосується Perl, то не тільки трапляється те саме, що і з C, але, оскільки він настільки надзвичайно гнучкий, ви можете знайти речі, які кидають виклик здоровому глузду. Треба сказати, що я не маю досвіду програмування на Perl, але я досить добре знаю його синтаксис.
Перший - як писати азбукою Морзе
І друге - це бути орангутангом, а четверте - це причина мозкових інфарктів.
Дуже добре пост.
я сумую за тобою, піет
http://www.dangermouse.net/esoteric/piet.html
І шеф-кухар, unlamda, пробіли і майстерність. Але я не хотів робити статтю занадто великою.
ЧАС ВИСТАВИ, ЧАС ШОУ
ПОГОВОРІТЬ З РУКОЮ «привіт світ»
ВАС ВІДТВОРЕНО
Привіт Світ в ArnoldC
http://www.genbetadev.com/actualidad/arnoldc-el-lenguaje-basado-en-frases-de-arnold-schwarzenegger
Ну, він цього не знав, гадаю, ідею йому дав "нульовий термінатор"
Правда в тому, що ці мови програмування мене розсмішили. Добре.