Цікавість: Езотеричні мови програмування

Езотеричні мови програмування - це мінімалістичні мови, створені як доказ концепції та / або виклику як для програмування мови, так і для написання для неї. Давайте подивимося огляд деяких з них:

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
До побачення

Оскільки він набагато читабельніший, ніж попередні мови програмування, я дозволю вам здогадатися, що він повинен робити. 😉

ІНТЕРКАЛ


І останнє, але не менш важливе: ми маємо пародію на мову програмування FORTRAN. ІНТЕРКАЛ. І тут привіт світ.
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 це ідеально підходить для вивчення покажчиків.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   davidlg - сказав він

    Я майже віддаю перевагу двійковому коду

    1.    дезікодер - сказав він

      Так, я однозначно вважаю за краще програмувати в двійковому або в асемблері безпосередньо, ви можете робити що завгодно (мови високого рівня врешті-решт працюють на процесорі), але цікавим у езотеричних мовах є проблема, яку вони представляють. До речі, дорожник (автору цієї статті), ти мене злиш. Як C та Perl нечитабельними та дратуючими? Яке нестерпне правопорушення !! Яке обурення! Але якщо C чудовий, в perl я не програмував, але я бачив хороші коментарі щодо цієї мови, тому що, мабуть, він дуже підходить для обробки файлів, рядків та цих стручків, наприклад для експлойтів це цілком непогано, хоча cy python в експлойтах працює добре ...

      Saludos!

      1.    дорожник - сказав він

        Чоловіче, мова C та perl була жартом, і так, вони цілком читабельні мови, дуже практичні та "красиві" у правильних руках. Звичайно, в C я бачив, що деякі люди в підсумку створюють клубок незрозумілого коду спагеті, і без вести облік. Що стосується Perl, то не тільки трапляється те саме, що і з C, але, оскільки він настільки надзвичайно гнучкий, ви можете знайти речі, які кидають виклик здоровому глузду. Треба сказати, що я не маю досвіду програмування на Perl, але я досить добре знаю його синтаксис.

  2.   Хоакін - сказав він

    Перший - як писати азбукою Морзе

    1.    дорожник - сказав він

      І друге - це бути орангутангом, а четверте - це причина мозкових інфарктів.

  3.   Тірсо Юніор - сказав він

    Дуже добре пост.

  4.   johnfgs - сказав він

    я сумую за тобою, піет
    http://www.dangermouse.net/esoteric/piet.html

    1.    дорожник - сказав він

      І шеф-кухар, unlamda, пробіли і майстерність. Але я не хотів робити статтю занадто великою.

  5.   діазепан - сказав він

    ЧАС ВИСТАВИ, ЧАС ШОУ
    ПОГОВОРІТЬ З РУКОЮ «привіт світ»
    ВАС ВІДТВОРЕНО

    Привіт Світ в ArnoldC

    http://www.genbetadev.com/actualidad/arnoldc-el-lenguaje-basado-en-frases-de-arnold-schwarzenegger

    1.    дорожник - сказав він

      Ну, він цього не знав, гадаю, ідею йому дав "нульовий термінатор"

  6.   eliotime3000 - сказав він

    Правда в тому, що ці мови програмування мене розсмішили. Добре.