I Codici Sorgenti
Qui trovi i 5 codici sorgenti che abbiamo selezionato noi di Codexpo.org e tra i quali puoi scegliere quello da stampare sulla tua T-shirt o la tua felpa Codexpo.
Puoi scegliere il codice più divertente, quello più elegante o quello storicamente più sigificativo.
Per ogni codice sorgente abbiamo realizzato una piccola scheda informativa che ti aiuta nelle scelta.
A. Guida Galattica Per Gli Autostoppisti
Linguaggio: Scala
Codice:
val getTheANswer = (question: Any) => 42
Fonte:
Codice basato su un tutorial introduttivo al linguaggio Scala Scala-lang.org
Riferimenti:
Wikipedia: Guida Galattica per gli autostoppisti
Note:
Scala è un linguaggio a paradigma misto, a oggetti e funzionale, inventato da Martin Odersky al Politecnico di Losanna e pubblicato a partire dal 2004.
Nel capitolo 27 del romanzo fanta-umoristico Guida galattica per gli autostoppisti di Douglas Adams, 42 è la risposta data dal super computer Deep Thought alla domanda finale sulla vita, l'universo e tutto quanto.
42 è diventato un numero magico (anche nel senso letterale: è la costante magica di un cubo magico di ordine 3) e viene citato un po' ovunque.
Persino Google risponde 42 alla domanda: "The answer to life, the universe and everything" Google.
Questa funzione anonima, invece, restituisce sempre 42 qualsiasi valore le si passi in ingresso.
Attenzione: il codice è valido solo fino alla versione 2.9 del linguaggio. Dalla versione 3 verrà generato un errore.
B. Senza fine
Linguaggio: BASIC
Codice:
10 PRINT "Senza fine ... "
20 PRINT "Tu sei un attimo... "
30 GOTO 10
Fonte:
Codice originale (!)
Riferimenti:
Senza fine, testo e musica di Gino Paoli, 1961. Chi è pi` grandicello probabilmente si ricorda che fu scritta in onore delle mani di Ornella Vanoni, che è anche la prima ad averla cantata.
Note:
Il BASIC (Beginner's All-purpose Symbolic Instruction Code) venne inventato nel 1964 presso l'Università di Dartmouth da John Kemeny e Thomas Kurtz.
Il codice riportato produce quello che è considerato un vero spettro della programmazione, cioè un loop infinito. Nell'esecuzione, una volta arrivato alla riga 30 il programma ricomincia da capo, con l'effetto di continuare a stampare sullo schermo "Senza fine / Tu sei un attimo / Senza fine / Tu sei un attimo /..."
Per sempre? No, in pratica solo finché non viene interrotto dall'esterno o dal sistema operativo, per esempio perché ha esaurito le risorse.
Insomma un invito a prendere tutto, anche l'amore, non troppo sul serio.
C. Apollo 11
Linguaggio: Assembly
Codice:
P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET
EXTEND
RAND CHAN33
EXTEND
BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
TC BANKCALL # SILLY THING AROUND
CADR GOPERF1
TCF GOTOP00H # TERMINATE
Fonte:
Github: Apollo 11
Riferimenti:
Note:
Il software di controllo del modulo di allunaggio dell'Apollo 11 è stato scritto, fra gli altri, da Margaret Hamilton e dal suo gruppo.
Recentemente, il codice è stato scannerizzato, ripuilito e messo a disposizione del mondo. E' stato così che si sono scoperti dei commenti piuttosto umoristici, come quello qui riportato che fa riferimento alla posizione dell'antenna del Landing Radar ("Astronaut: please crank the silly thing around", ovvero "Astronauta, per favore gira quella stupida cosa")
Il software peraltro si comportò egregiamente proprio nella gestione di un'anomalia del sistema di interfaccia con il radar, che stava consumando tutte le risorse del computer di bordo, e segnalò il problema, permttendo all'astronauta di turno di spegnerlo.
D. L'inquisizione spagnola
Linguaggio: Python
Codice:
#!/usr/bin/env python3
class SpanishInquisition(Exception):
pass
raise SpanishInquisition("Nobody expects the Spanish Inquisition!")
Fonte:
Originale
Riferimenti:
Wikipedia: Inquisizione spagnola
Note:
Il linguaggio Python, creato da Guido Van Rossum all'inizio di questo millennio, deve il suo nome al gruppo di attori inglesi Monty Python, di cui Rossum è sempre stato un fan.
Uno degli sketch più famosi del programma televisivo Monty Python Flying Circus è quello in cui, in seguito ad una serie di domande incresciose, qualcuno dice "Non mi aspettavo un'inquisizione spagnola!"; in quel momento entrano in scena tre cardinali spagnoli.
Di qui il tormentone "Nessuno si aspetta l'Inquisizione Spagnola".
E. Paradosso del mentitore
Linguaggio: Prolog
Codice:
sincero(Qualcuno) :- dice(Qualcuno, Frase), Frase.
bugiardo(Qualcuno) :- not(sincero(Qualcuno)).
nato_a(epimenide, creta).
dice(epimenide, (nato_a(Qualcuno, creta), bugiardo(Qualcuno))).
:- sincero(epimenide).
Fonte:
Originale
Riferimenti:
Wikipedia: Paradosso del Mentitore
Note:
Il famoso paradosso del mentitore, citato da San Paolo nella lettera a Tito, ha questa forma:
Epimenide, il cretese, dice che "Tutti i cretesi sono bugiardi".
Questa versione è scritta in Prolog, linguaggio inventato a Marsiglia da Alain Colmerauer negli anni '70 e basato sul paradigma logico. In Prolog i programmi sono costituiti da fatti e regole, sulla base dei quali il sistema prova a dimostrare teoremi. Chiaramente la dimostrazione del paradosso di Epimenide non è possibile, e quindi il programma va in loop infinito.
Un altro modo più criptico di scriverlo:
bugiardo(Qualcuno) :-
bugiardo(Qualcuno),
!,
fail
;
true.
:- bugiardo(epimenide).