Curiozități: limbaje de programare ezoterice

Limbajele de programare ezoterice sunt limbaje minimaliste, create ca dovadă a conceptului și / sau provocării, atât pentru programarea limbajului, cât și pentru scrierea acestuia. Să vedem o recenzie a unora dintre ele:

brainfuck


Este cel mai cunoscut și cel mai popular, sintaxa sa este destul de simplă:

 
 ++++++++++
 [          Buclă pentru a începe amintirile (se repetă de 10 ori)
    >+++++++>++++++++++>+++++++++++>+++>+<<<<-
       70 100 110 30 10
 ]
 >++.              „H” (72) 1
 >>+.              „sau” (111) 3
 ---.              „l” (108) 3
 <---.             „a” (97) 2
 >>++.             spațiu (32) 4
 <+.               „m” (109) 3
 ++++++++.         „u” (117) 3
 -------.          „n” (110) 3
 <+++.             „d” (100) 2
 >+.               „sau” (111) 3
 >+.               '!' (33) 4
 >.                „\ n” (10) 5

Pentru a explica sintaxa sa, cel mai bine este să folosiți alte limbaje de programare. Deci în pagina lui Wikipedia furnizați-ne acest tabel de echivalență, în care ptr este echivalent cu un caracter nesemnat:

brainfuck C Perl
> ++ ptr; $ pointer ++;
< –Ptr; $ pointer–;
+ ++ * ptr; $ tape [$ pointer] ++;
- - * ptr; $ tape [$ pointer] -;
. putchar (* ptr); print chr $ tape [$ pointer];
, * ptr = getchar (); $ tape [$ pointer] = ord (<>);
[ while (* ptr) { while ($ bandă [$ pointer]) {
] } }

Ook!


Se bazează pe cea anterioară, dar folosește în schimb combinația de cuvinte Ok?, Ok! y De asemenea. Este o parodie a bibliotecarului din Discworld, care se transformă într-un orangutan și nu poate pronunța decât aceste trei cuvinte. Să ne uităm la o bucată de cod.

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

Se presupune că acest „program” ceea ce face este să scrie tipica „bună lume”.

Înfruntă-te


În opinia mea, cea mai originală dintre toate, structura sa de control al fluxului se bazează pe săgeți care indică programului unde să meargă. De asemenea, face mult mai ușor crearea codului mutant (cod care se modifică singur):

vv << 2 ^ v <v13v4 ^ ^ >>?>?> 5 ^ vv v97v6 vv <8. >> ^ ^

Codul de mai sus este despre un generator infinit de numere aleatorii, care va genera un număr între 1 și 9. Mult mai lizibil decât cele anterioare.

Malbolge


Aici avem un limbaj de programare creat pentru a fi iritant și ilizibil (nu, nu este C, și nu, nu este Perl). Este despre Malbolge, al cărui nume provine din cel de-al 8-lea cerc al iadului din Divina Comedie. Iată o „bună lume” (sau asta mi s-a spus că este):

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

lolcat


O simplă glumă. Să vă vedem codul:

HAI
CAN HAS STDIUM?
AM UN VAR
IM IN YR LOOP
   UP VAR!!1
   VIZIBIL VAR
   IZ VAR MAI MARE CĂRBUNE 10? KTHX
IM Outta YR LOOP
KTHXBYE

Deoarece este mult mai lizibil decât limbajele de programare anterioare, vă voi lăsa să ghiciți ce ar trebui să facă. 😉

INTERCALL


Și nu în ultimul rând avem o parodie a limbajului de programare FORTRAN. INTERCAL. Și aici salut lume.
DO ,1 <- #13
VA RUGAM SA DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
VA RUGAM SA DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
VA RUGAM SA CITIT OUT ,1
VA RUGAM SA DA UP
Ei bine, asta e.

Trebuie să spun că unele dintre aceste limbaje de programare sunt foarte utile pentru a învăța despre unele concepte de calculator. De exemplu, brainfuck este perfect pentru a afla despre indicii.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   davidlg el a spus

    Aproape că prefer codul binar

    1.    desikoder el a spus

      Da, cu siguranță prefer să programez în binar sau în asamblare direct, puteți face orice (limbajele de nivel înalt ajung să ruleze pe procesor până la urmă), dar lucrul interesant despre limbajele ezoterice este provocarea pe care o reprezintă. Apropo, roader (autorul acestui articol), mă enervezi. Cum sunt C și Perl ilizibile și iritante? Ce infracțiune intolerabilă !! Ce indignare! Dar dacă C este minunat, în perl nu am programat, dar am văzut comentarii bune despre acest limbaj, deoarece se pare că este foarte potrivit pentru manipularea fișierelor, șirurilor și acestor pod-uri, de exemplu pentru exploit-uri este destul de bun, deși cy python în exploit-uri lucrează bine ...

      Salutări!

      1.    rutier el a spus

        Omule, chestia cu C și perl a fost o glumă și da, sunt limbaje destul de lizibile, foarte practice și „frumoase” în mâinile potrivite. Desigur, în CI au văzut că unii oameni ajung să creeze o încurcare de cod de spaghete neinteligibil, și fără a ține evidența. În ceea ce privește Perl, nu numai că se întâmplă același lucru ca și în cazul C, dar pentru că este extrem de flexibil, puteți găsi lucruri care sfidează bunul simț. Trebuie să spun că nu am experiență în programarea în Perl, dar îi cunosc destul de bine sintaxa.

  2.   Joaquin el a spus

    Primul este cum se scrie în cod morse

    1.    rutier el a spus

      Iar al doilea este să fii un orangutan, iar al patrulea, provoacă infarcte cerebrale.

  3.   Tyrus Junior el a spus

    Foarte bine postarea.

  4.   johnfgs el a spus
    1.    rutier el a spus

      Și bucătar, unlamda, spațiu alb și tink. Dar nu am vrut să fac articolul prea mare.

  5.   diazepam el a spus

    E ORA DE ARĂTARE
    VORBIȚI CU MÂNA «salut lume»
    AȚI FOST TERMINAT

    Hello World în ArnoldC

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

    1.    rutier el a spus

      Ei bine, el nu o știa, cred că ideea i-a fost dată de „terminatorul nul”

  6.   eliotime3000 el a spus

    Adevărul este că acele limbaje de programare m-au făcut să râd. Bun.