codexpo[]Il primo museo del codice sorgente

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).