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
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
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.
Aproape că prefer codul binar
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!
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.
Primul este cum se scrie în cod morse
Iar al doilea este să fii un orangutan, iar al patrulea, provoacă infarcte cerebrale.
Foarte bine postarea.
mi-e dor de tine piet
http://www.dangermouse.net/esoteric/piet.html
Și bucătar, unlamda, spațiu alb și tink. Dar nu am vrut să fac articolul prea mare.
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
Ei bine, el nu o știa, cred că ideea i-a fost dată de „terminatorul nul”
Adevărul este că acele limbaje de programare m-au făcut să râd. Bun.