Seleziona la tua lingua
A bug's life - genesi di una parola
Un bug è un errore logico presente in un programma per computer. Spesso si parla di bug per indicare un errore nella scrittura di un codice sorgente che impedisce ad un programma di funzionare. Esistono tuttavia bug più subdoli, quelli che deviano il flusso di esecuzione del codice e danno risultati credibili ma errati. Questi sono i più insidiosi, soprattutto nelle applicazioni moderne, dove diversi strati di software dialogano tra di loro per produrre un output. Celebre è il bug che impose a Intel il ritiro del suo primo modello di processore Pentium, nel 1994. A causa di un errore di rappresentazione dei numeri in virgola mobile, le operazioni artmetiche restituivano valori arrotondati in modo impreciso. Fin qui niente di male fintanto che un utente compila un foglio excel in cui archivia per uso personale i valori del proprio peso e della statura.
Ma se un programma deve calcolare coordinate geografiche, rotte aeree o missilistiche, o fare calcoli finanziari? La precisione allora diventa importante perché una piccola differenza può amplificarsi enormemente. Il primo processore Pentium fu infatti ritirato dal mercato e sostituito. Ma da dove viene il termine bug?
Pare che fosse una parola scozzese per indicare problemi, piccoli sbagli o difficoltà in un lavoro di tipo ingegneristico. Lo stesso Thomas Edison ne fa uso nei suoi scritti già nel 1878, ma fu solo dopo la Seconda Guerra Mondiale che il termine entrò a far parte del gergo informatico. La leggenda ne attribuisce l'introduzione al tenente Grace Hopper, prima donna programmatore. Grace ebbe anche un ruolo chiave nello sviluppo del linguaggio di programmazione COBOL.
Il 9 settembre del 1947, analizzando la causa del malfunzionamento del computer Harvard Mark I, scoprì una falena morta che si era infiltrata tra le valvole del calcolatore elettronico. Le sue ali bloccavano la lettura dei fori sul nastro di carta in input. In quegli anni i calcolatori funzionavano a valvole e producevano molto calore. Siccome non esistevano i climatizzatori, gli ambienti in cui queste macchine erano conservati ed operavano non erano riscaldati e nelle sere più fredde qualche insetto poteva infiltrarsi negli ambienti e posarsi sui circuiti, in cerca di tepore. Allo Smithsonian Museum è conservato il registro su cui alle 15:45 la Hopper scrisse la diagnosi del malfunzionamento: "1545. Relay #70 Panel F (moth) in relay. First actual case of bug being found" (Primo reale caso di bug trovato). A scopo documentativo, la falena morta fu incollata sulla pagina del registro.
Grace Hopper coniò anche la parola debugging, termine che descrive la diagnosi di un problema in un programma volto all'eliminaizone della causa di errore.