Linguaggi Esoterici [Programmazione]

Linguaggi ESOTERICI?

Quando si parla di linguaggi di programmazione, spesso si parla di linguaggi funzionali o ad oggetti, o comunque di realtà ben consolidate da tempo all’interno del mondo informatico. Che cosa sono dunque questi linguaggi esoterici, e da dove vengono?

C’è sempre quella nicchia di programmatori, comunemente chiamati hackers, a cui diverte inventare o imparare linguaggi fuori dal comune, dove non esistono le classiche regole. Dalla volontà di creare linguaggi “strani“, lì nascono i linguaggi esoterici, linguaggi che spesso sono di difficile comprensione, e che passano inosservati, se letti da qualsiasi persona che non sappia l’esistenza di questo tipo di linguaggio.

Un linguaggio esoterico è dunque un linguaggio di programmazione appositamente complesso ed oscuro ai più.

Esempio: Chef

Guardate questo testo

Put cinnamon into 2nd mixing bowl

Si tratta dell’inserimento nello stack di un valore definito precedentemente, ma apparentemente sembra parte di una ricetta. Frutto del linguaggio Chef!

Esempio: Piet

Ora diamo uno sguardo a queste immagini:

Piet Hello World - Linguaggi Esoterici Piet Hello World - Animata - Linguaggi Esoterici

Sono due immagini 13×13 e 14×14 apparentemente senza senso, con un che di “artistico”.

Ebbene, entrambe queste immagini, secondo le regole del linguaggio Piet (dall’artista Mondrian, alle cui opere si ispira) stampano sullo standard output il famoso “Hello World!\n”.

NB: La seconda immagine ha 3 diverse colorazioni che stampano sempre la stessa stringa a schermo.

Considerate ora il fatto che le immagini precedenti sono ovviamente ingrandite, ma in realtà un quadratino colorato corrisponde ad un pixel. Ecco come risulterebbero:

Piet Hello World1 - Original

Piet Hello World2 - Original

Abbastanza piccole da passare inosservate, sopratutto se poste all’interno di un’immagine più grande.

Scopri di più

Esempio: Brainfuck

Come suggerisce il nome di questo linguaggio, il codice risulterà molto incomprensibile, come sempre del resto per questo tipo di linguaggi.

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

Indovinate cosa fa questo codice? Stampa “Hello World!\n”!

In Brainfuck sono disponibili 8 simboli che compongono ogni programma: < > +  [ ] . ,

La particolarità di Brainfuck sta nel fatto che possa essere eseguito persino su una macchina di Turing, infatti le operazioni di questo linguaggio sono: decremento/incremento del puntatore (o della “testina”), incremento o decremento del valore puntato dal puntatore, istruzioni di confronto e loop, e operazioni di output/input.

Scopri di più

Esempio: Whitespace

Mentre Piet offusca il programma in un’immagine, Whitespace lo nasconde in un testo.

Whitespace usa 3 simboli: lo Spazio, la Tabulazione, e il LineFeed (“a capo”). Questi 3 simboli formano, con diverse combinazioni, tutte le istruzioni necessarie.

La parte “divertente” sta nel fatto che se aprite con un editor di testo un programma in whitespace, o se lo stampate su carta, vi troverete di fronte ad un foglio completamente bianco. Da qui ovviamente il nome Whitespace.

Scopri di più

Per oggi sui linguaggi esoterici è tutto, seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.



Cerca

Seguici

Live da Facebook
Live da Twitter
Seguici su Telegram
Canale InsiDevCode Telegram
Google Plus