b'\n_START_ARTICLE_\nLinguaggio di programmazione esoterico\n_START_PARAGRAPH_\nUn linguaggio di programmazione esoterico \xc3\xa8 una tipologia di linguaggi di programmazione particolarmente complessi e volutamente meno chiari possibile. Questi linguaggi, popolari fra gli hacker e gli utenti pi\xc3\xb9 che abili, non hanno una vera utilit\xc3\xa0 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.\n_START_SECTION_\nStoria\n_START_PARAGRAPH_\nIl primo esempio di linguaggio esoterico \xc3\xa8 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._NEWLINE_Venti anni pi\xc3\xb9 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\xc3\xbcller a creare un linguaggio ancora pi\xc3\xb9 conciso, il Brainfuck, composto da soli otto caratteri riconosciuti. Insieme al Befunge creato da Chris Pressey, sono i due linguaggi esoterici pi\xc3\xb9 noti.\n_START_SECTION_\nTuring Tarpit\n_START_PARAGRAPH_\n\xc3\x88 un linguaggio di programmazione Turing-completo il cui numero di comandi, operatori o oggetti \xc3\xa8 molto piccolo.\n_START_SECTION_\nFunge\n_START_PARAGRAPH_\nUna funge \xc3\xa8 un programma le cui istruzioni sono disposte a formare una figura che si sviluppa bidimensionalmente, e la sequenza delle istruzioni \xc3\xa8 stabilita dalla direzione di movimento di un "puntatore" su tale figura. Il programmatore ha a disposizione, oltre che istruzioni sui dati, anche comandi per modificare posizione e direzione di movimento del puntatore.\n_START_SECTION_\nNon determinismo\n_START_PARAGRAPH_\nIn un linguaggio non deterministico, l\'esecuzione delle istruzioni non \xc3\xa8 garantita con certezza, ma solo con una certa probabilit\xc3\xa0. In linguaggi come questi, anche tentare di ottenere un risultato \xc3\xa8 un compito arduo, dato che non si ha la certezza che un\'istruzione sia eseguita o meno, e quindi non \xc3\xa8 possibile prevederne il funzionamento.'