Il primo programma per computer della storia
0001:00011000000000100000000000000000 0002:01011000000001100000000000000000 0003:01011000000000100000000000000000 0004:11011000000001100000000000000000 0005:11101000000000100000000000000000 0006:11011000000000010000000000000000 0007:00000000000000110000000000000000 0008:00101000000001000000000000000000 0009:01011000000000010000000000000000 0010:10011000000001100000000000000000 0011:10011000000000100000000000000000 0012:00000000000000110000000000000000 0013:00000000000001110000000000000000 0014:01011000000000100000000000000000 0015:10101000000000010000000000000000 0016:11011000000001100000000000000000 0017:11011000000000100000000000000000 0018:01011000000001100000000000000000 0019:01101000000000000000000000000000 0020:10111111111111111111111111111111 0021:10000000000000000000000000000000 0022:00100000000000000000000000000000 0023:00000000000000000011111111111111 0024:11111111111111111100000000000000 |
Il primo programma della storia ad
essere memorizzato su un computer fu scritto da Tom Kilburn e
venne eseguito per la prima volta il 21 giugno 1948 sul Manchester
Mark 1, il primo calcolatore elettronico digitale
programmabile. Si trattava di un programma per individuare il più
alto fattore proprio di 2^18; questo doveva essere fatto provando
in una singola routine ogni intero da (2^18-1) in giù; le
divisioni necessarie furono realizzate non tramite la "divisione
lunga", ma attraverso ripetute sottrazioni del divisore (poiché
il Mark 1 aveva soltanto un sottrattore implementato in hardware).
Furono provati circa 130.000 numeri, e questo richiese 3,5
milioni di operazioni. La risposta corretta fu ottenuta dopo 52
minuti di esecuzione. Il programma fu codificato in sole 17
istruzioni.
Il programma originale è andato perso. La versione revisionata
riportata qui sotto proviene dagli appunti di G.C. Tootills, un
contemporaneo di Kilburn. Questa utilizza due ulteriori
istruzioni per copiare il fattore in prova poiché la versione
originale lo sovrascriveva con la risposta finale, con
conseguente necessità di reinserirlo prima di eseguire
nuovamente il programma. In questa versione C è usato per
rappresentare il computer (cioè l'accumulatore), C1 per
rappresentare il registro di controllo, le altre lettere a,b,r
sono rispettivamente il numero da fattorizzare, un fattore di
prova, e un resto.
~ o ~
E' disponibile un Simulatore del Mark
1 con allegato il codice binario del primo programma della storia.