Creare Videogiochi - Game Developer

Versione completa: Linguaggi Esoterici
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.

Riddick

Un linguaggio di programmazione esoterico è una tipologia di linguaggi di programmazione particolarmente complessi e volutamente meno chiari possibile. Questi linguaggi, popolari fra gli hacker e gli utenti più che abili, non hanno una vera utilità nel mondo reale, ma sono generalmente concepiti per mettere alla prova i limiti della programmazione su computer, come proof of concept per dimostrare una teoria o per semplice divertimento. Alcuni, invece, sono concepiti come esercizio per comprendere meglio il funzionamento di un calcolatore.

Storia


Il primo esempio di linguaggio esoterico è stato INTERCAL, scritto nel 1972 da James M. Lyon e Don Woods, col tentativo di creare un linguaggio totalmente differente da quelli esistenti all'epoca, parodiando elementi di Fortran, COBOL, e assembly.
Venti anni più tardi Wouter van Oortmerssen ha creato FALSE, un linguaggio basato sul concetto di macchina a stack dotato di una sintassi confusa, illeggibile ed estremamente concisa: il compilatore occupa solamente 1024 byte. Questo ha in seguito ispirato Urban Müller a creare un linguaggio ancora più conciso, il brainfuck, composto da soli otto caratteri riconosciuti. Insieme al Befunge creato da Chris Pressey, sono i due linguaggi esoterici più diffusi e seguiti.

Ecco alcuni linguaggi esoterici


Brainfuck


Brainfuck è un linguaggio di programmazione esoterico per computer, creato da Urban Müller intorno al 1993. Il linguaggio viene in taluni casi denominato Brainf*ck, Brainf*** o anche soltanto BF per evitare di offendere la sensibilità altrui.

Struttura del linguaggio

Il primo esempio di linguaggio esoterico è stato INTERCAL, scritto nel 1972 da James M. Lyon e Don Woods, col tentativo di creare un linguaggio totalmente differente da quelli esistenti all'epoca, parodiando elementi di Fortran, COBOL, e assembly.
Venti anni più tardi Wouter van Oortmerssen ha creato FALSE, un linguaggio basato sul concetto di macchina a stack dotato di una sintassi confusa, illeggibile ed estremamente concisa: il compilatore occupa solamente 1024 byte. Questo ha in seguito ispirato Urban Müller a creare un linguaggio ancora più conciso, il brainfuck, composto da soli otto caratteri riconosciuti. Insieme al Befunge creato da Chris Pressey, sono i due linguaggi esoterici più diffusi e seguiti.

Il seguente codice mostra "Hello World!" sullo schermo e manda a capo il cursore:

Codice PHP:
++++++++++
[
   >+++++++>++++++++++>+++>+<<<<-
]
>++. 
Loop iniziale (dopo viene stampata una H)
>+. 
e
+++++++. l
l
+++. o
>++.
<<+++++++++++++++.
>.
+++.
------.
--------.
>+.
>. 

Malbolge


Malbolge è un linguaggio di programmazione esoterico, creato da Ben Olmstead nel 1998, con lo scopo di creare un linguaggio che fosse il più difficile possibile da utilizzare. Andrew Cooke riuscì a scrivere il primo "Hello, world!" solo con l'aiuto di un programma in Lisp.

Malbolge è talmente complesso che il primo programma funzionante, Hello, world è arrivato due anni dopo il suo rilascio:

Codice PHP:
('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@> 

Questo programma legge una stringa e la stampa a video:

Codice PHP:
(aBA@?>=<;:9876543210/.-,JH)('&%$#"!~}|{zy\J6utsrq
ponmlkjihgJ%dcba`_^]\[ZYXWVUTSRQPONMLKJIHGF('C%$$^
K~<;4987654321a/.-,\*)
j
!~%|{zya}|{zyxwvutsrqSonmlO
jLhg`edcba`_^]\[ZYXWV8TSRQ4
ONM/KJIBGFE>CBA@?>=<;{9876w
43210/.-m+*)('&%$#"!~}|{zy\
wvunslqponmlkjihgfedcEa`_^A
\>ZYXWPUTSRQPONMLKJIH*FEDC&
A@?>=<;:9876543210/.-m+*)(i
&%$#"!~}|{zyxwvutsrqpRnmlkN
ihgfedcba`_^]\[ZYXWVU7SRQP3
NMLKJIHGFEDCBA@?>=<;:z8765v
3210/.-,+*)('&%$#"!~}_{zyx[
vutsrqjonmlejihgfedcba`_^]@
[ZYXWVUTSRo 

Fonte : WikiPedia
Citazione:Malbolge è talmente complesso che il primo programma funzionante, Hello, world è arrivato due anni dopo il suo rilascio

Stupendo XD XD XD

Riddick

E tu ti lamenti dell'assembly XD, questi linguaggi arrivano proprio al limite.

Alche

il malbolge è mille volte più difficile del c++ omg <.< e magari pure meno potente ma che se ne vadano u.u

Riddick

Non c'entra nulla col : C++, C etc...

L'ho scritto all'inizio a cosa servono :

Un linguaggio di programmazione esoterico è una tipologia di linguaggi di programmazione particolarmente complessi e volutamente meno chiari possibile. Questi linguaggi, popolari fra gli hacker e gli utenti più che abili, non hanno una vera utilità nel mondo reale, ma sono generalmente concepiti per mettere alla prova i limiti della programmazione su computer, come proof of concept per dimostrare una teoria o per semplice divertimento. Alcuni, invece, sono concepiti come esercizio per comprendere meglio il funzionamento di un calcolatore.
ma che! solo einstein potrebbe fare un programma con quei linguaggi xD comunque grazie dell'info!

Alche

ma in teoria un trojan creato con c++ risulta sempre più potente di uno creato con un linguaggio esoterico beh di certo un trojan col c++ viene riconosciuto all'istante mentre un trojan con linguaggio esoterico è indecifrabile il codice talmente è complesso e l'antivirus non lo rileva..beh sempre utile è xD

Lorenz

questi linguaggi sono volutamente incasinati e inutili...ci vuoi che usi un linguaggio che è talmente complesso che il primo programma funzionante, Hello, world è arrivato due anni dopo il suo rilascio !!! [sadomaso]
Non c'entrano niente i trojan, non si riuscirebbe nemmeno a scriverli in un linguaggio esoterico.
E comunque l'antivirus non guarda il codice per scoprire se è un malware (non potrebbe nemmeno visto che si fanno con linguaggi compilati).

Alche

E allora non servono a una cippa <.< come dice wikipedia "non hanno una vera utilità nel mondo reale" e servono solo a incasinarti il cervello xD

Riddick

dark, come dice anche wikipedia, questi linguaggi li usano coloro che sanno i fatti loro, e uno di questi sono gli : Hacker, come li usano ? boh domandaglielo a loro XD.
Non li usano gli hacker, li creano e basta (quasi esclusivamente per divertimento).

Riddick

Io non ne conosco di Hacker tu si ? XD io mi sono basato su quello che dici wikipedia.
Citazione:non hanno una vera utilità nel mondo reale, ma sono generalmente concepiti per mettere alla prova i limiti della programmazione su computer, come proof of concept per dimostrare una teoria o per semplice divertimento

lolcode, cow, ook!, whitespace, whirl e altri.
Ti sembrano programmi creati con qualche utilità? Ci fanno giusto hello word e programmi stupidi per sfizio personale.

Wikipedia dice che sono popolari tra gli hacker, non che li usano.

Riddick

Va bene, e come parlare con i ciucci che volano. Chiudo la discussione cosi la finiamo di dire boiate che possono confondere chi legge il post.