Codici

Codici

Questa mostra è dedicata al codice sorgente. Quando è stata immaginata come esposizione itinerante, da visitare fisicamente, la prima domanda che ci siamo posti era questa: i codici sorgenti sono testi, non sono oggetti materiali. Come si fa ad esporli?

Per un certo verso, si può esporre il supporto su cui sono stati depositati per essere usati: per esempio, una scheda perforata, una nastro magnetico, un disco. Oppure il supporto che è stato usato per rileggerli, controllarli ed eventualmente: un foglio di carta. E' chiaro che i primi supporti possono avere un interesse di tipo storico, ma solo l'ultimo permette al visitatore di leggere il codice sorgente direttamente, o almeno di provarci.

Questo è un frammento del codice del sistema operativo dell'Apple II, stampato, con i commenti scritti a penna:

Apple II Dos
Source: https://computerhistory.org/
Una fonte importante sono i manuali, di un linguaggio o di una macchina. Ad esempio, questo è il pezzetto di manuale del linguaggio B in cui Kerninghan introduce le variabili esterne:
Hello World
Source: web
Questo invece è un frammento del manuale dell'Olivetti P101, da molti considerata il primo personal computer:
P101
Source: web
Si tratta comunque di riproduzioni, di foto storiche di supporti.

Una mostra virtuale come questa (o una mostra fisica in grado di utilizzare degli schermi) può invece esibire anche il codice in sé, indipendentemente dal supporto originale. Per esempio, può esibire il codice sorgente in Assembler IBM 370 che stampa Hello, World!:


	TITLE 'Hello World for IBM Assembler/370 (VM/CMS)'
	HELLO START
	BALR  12,0
	USING *,12
	*
	WRTERM 'Hello World!'
	*
	SR    15,15
	BR 	14
	*
	END   HELLO

Source: http://helloworldcollection.de.

Ma questa operazione sarebbe inutile senza un commento che spiega cos'era l' IBM_370, un mainframe restato in produzione dal 1970 al 1988.

Non volendo esibire tutti i codici sorgenti significativi della storia dell'informatica (come faremo, un po' alla volta, nel Museo del codice, né un codice di esempio per ogni linguaggio (come fanno altri siti web, per esempio Rosetta Code, ci concentriamo solo su alcuni codici particolari, a cui dedichiamo un po' più d'attenzione: come sono nati, chi li ha scritti, perché.

Prossimo pannello:  Hello World