Curiosità: linguaggi di programmazione esoterici

I linguaggi di programmazione esoterici sono linguaggi minimalisti, creati come prova di concetto e / o sfida, sia per programmare il linguaggio che per scrivere per esso. Vediamo una recensione di alcuni di loro:

fottuto cervello


È il più conosciuto e il più popolare, la sua sintassi è abbastanza semplice:

 
 + + + + + + + + + +
 [          Loop per avviare le memorie (si ripete 10 volte)
    >+++++++>+ + + + + + + + + +>+++++++++++>+++>+<<<<-
       70 100 110
 ]
 >++.              'H' (72) 1
 >>+.              "o" (111) 3
 ---.              'l' (108) 3
 <---.             'a' (97) 2
 >>++.             spazio (32) 4
 <+.               'm' (109) 3
 ++++++++.         'u' (117) 3
 -------.          'n' (110) 3
 <+++.             'd' (100) 2
 >+.               "o" (111) 3
 >+.               "!" (33) 4
 >.                '\ n' (10) 5

Per spiegare la sua sintassi, è meglio rivolgersi ad altri linguaggi di programmazione. Quindi dentro la sua pagina Wikipedia forniscici questa tabella di equivalenze, in cui ptr è equivalente a un carattere senza segno:

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

Ook!


Si basa sul precedente, ma utilizza invece la combinazione di parole ok?, ok! y Anche. È una parodia del bibliotecario di Discworld, che si trasforma in un orango e può pronunciare solo quelle tre parole. Diamo un'occhiata a un pezzo di codice.

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

Presumibilmente questo "programma" quello che fa è scrivere il tipico "ciao mondo".

Befungo


A mio parere il più originale di tutti, la sua struttura di controllo del flusso è basata su frecce che dicono al programma dove andare. Inoltre, rende molto più semplice creare codice mutante (codice che si modifica da solo):

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

Il codice sopra riguarda un generatore di numeri casuali infiniti, che genererà un numero compreso tra 1 e 9. Molto più leggibile dei precedenti.

Malbolge


Qui abbiamo un linguaggio di programmazione creato per essere irritante e illeggibile (no, non lo è Ce no, non lo è Perl). Riguarda Malbolge, il cui nome deriva dall'ottavo cerchio dell'inferno di La Divina Commedia. Ecco un "ciao mondo" (o è quello che mi è stato detto che è):

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

lolcat


Un semplice scherzo. Vediamo il tuo codice:

HAI
Materiale HA STDIO?
HO UN VAR
IM IN YR CICLO CONTINUO
   UP VAR!!1
   VISIBILE VAR
   IZ VAR PIÙ GRANDE DI 10? KTHX
IM FUORI DA YR CICLO CONTINUO
KTHXCIAO

Dato che è molto più leggibile dei precedenti linguaggi di programmazione, ti farò indovinare cosa dovrebbe fare. 😉

INTERCHIAMATA


E, ultimo ma non meno importante, abbiamo una parodia del linguaggio di programmazione FORTRAN. INTERCAL. E qui ciao mondo.
DO ,1 <- #13
PER FAVORE 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
PER FAVORE 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
PER FAVORE LEGGI OUT ,1
PER FAVORE DARE UP
Bene, questo è tutto.

Devo dire che alcuni di questi linguaggi di programmazione sono molto utili per l'apprendimento di alcuni concetti di computer. Per esempio, fottuto cervello è perfetto per imparare a usare i puntatori.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   davide suddetto

    Quasi preferisco il codice binario

    1.    desikoder suddetto

      Sì, preferisco decisamente programmare in binario o direttamente in assembler, puoi fare qualsiasi cosa (i linguaggi di alto livello finiscono per funzionare sul processore dopo tutto), ma la cosa interessante dei linguaggi esoterici è la sfida che rappresentano. A proposito, roader (l'autore di questo articolo), mi stai facendo incazzare. In che modo C e Perl sono illeggibili e irritanti? Che offesa intollerabile !! Che oltraggio! Ma se il C è meraviglioso, in perl non l'ho programmato ma ho visto buoni commenti su questo linguaggio perché a quanto pare è molto adatto per gestire file, stringhe e questi pod, ad esempio per gli exploit è abbastanza buono, anche se cy python negli exploit funziona bene ...

      Saludos!

      1.    vagabondo suddetto

        Amico, il C e il perl erano uno scherzo, e sì, sono linguaggi abbastanza leggibili, molto pratici e "belli" nelle mani giuste. Ovviamente in C ho visto che alcune persone finiscono per creare un groviglio di codice di spaghetti incomprensibile, e senza mantieni il record . Per quanto riguarda Perl, non solo accade la stessa cosa di C, ma, essendo così estremamente flessibile, puoi trovare cose che sfidano il buon senso. Devo dire che non ho esperienza di programmazione in Perl, ma conosco abbastanza bene la sua sintassi.

  2.   Joaquin suddetto

    Il primo è come scrivere in codice morse 😀

    1.    vagabondo suddetto

      E il secondo è essere un orangutan e il quarto provoca infarti cerebrali.

  3.   Tiro Junior suddetto

    Molto buono il post.

    1.    vagabondo suddetto

      E chef, unlamda, spazi bianchi e tintinnio. Ma non volevo rendere l'articolo troppo grande.

  4.   diazepano suddetto

    È SHOWTIME
    PARLA ALLA MANO «ciao mondo»
    SEI STATO TERMINATO

    Hello World in ArnoldC

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

    1.    vagabondo suddetto

      Beh, non lo sapeva, immagino che l'idea gli sia stata data dal "terminatore nullo"

  5.   eliotime3000 suddetto

    La verità è che quei linguaggi di programmazione mi hanno fatto ridere. Buona.