1.
Parole, numeri e algoritmi
Alle origini della specie umana, dopo i cinque sensi, il linguaggio Ăš stato il primo e per molto tempo unico mediatore del rapporto degli uomini primitivi con i loro simili e con il mondo arcaico e difficile nel quale dovevano procurarsi il necessario per sopravvivere. Senza il linguaggio lâuomo era solo davanti al mondo. Quello che poteva conoscere era legato a ciĂČ che egli vedeva, a quello che gli accadeva e ai gesti che gli altri uomini potevano comunicargli. Nessun concetto astratto poteva essergli fornito. Nel tempo, grazie allo sviluppo dellâoralitĂ , gli esseri umani hanno potuto condividere e trasferire da un individuo allâaltro concetti, esperienze e conoscenze, ricevendone enormi benefici. Hanno potuto apprendere non soltanto dalla loro esperienza, ma anche dalle esperienze dei loro simili con i quali vivevano o venivano in contatto. Il linguaggio per primo ha permesso non soltanto la condivisione del sapere tra contemporanei, ma anche la sua trasmissione nel tempo. La lingua parlata ha esteso i modi di pensare e la realtĂ di ogni essere umano che grazie a essa âapprendeva il mondoâ anche tramite quello che gli veniva descritto e raccontato. La comunicazione orale Ăš stata un fenomenale mezzo di comunicazione, ma anche un prezioso filo di trasmissione del sapere umano tramite le parole dette e ascoltate. In seguito, i segni e la scrittura hanno ulteriormente modificato il rapporto tra gli individui e il mondo. Grazie a essi, gli uomini sono usciti dalla preistoria per entrare pienamente nella storia. Hanno costruito il logos, fatto di parole e di pensiero. Circa cinquemila anni fa, i geroglifici egizi e la scrittura cuneiforme in Babilonia hanno fornito a quelle civiltĂ la possibilitĂ di fermare su supporti permanenti le esperienze, lâelaborazione del pensiero, le operazioni matematiche e le forme artistiche. Tutti elementi espressi tramite la stesura di segni testuali complessi che, rispettando sintassi condivise e divulgabili, hanno permesso lo sviluppo e lâaccumulo della conoscenza. I sistemi di scrittura sono andati molto oltre quello che permetteva il racconto orale e la memoria di un essere umano, permettendo la conservazione, la condivisione e la diffusione in forme originali e persistenti nello spazio e nel tempo. La scrittura ha quindi rappresentato un enorme salto in avanti nella vita degli umani e nella loro cultura, permettendo di costruire il rapporto tra lâuomo e la realtĂ anche sulla base di tutto quello che egli era capace di esprimere, scrivendolo e leggendolo tramite sistemi formali complessi di rappresentazione simbolica.
Gli uomini certamente hanno avuto bisogno di fare dei calcoli fin da quando hanno posseduto la capacitĂ di pensare. Probabilmente prima dellâinvenzione della scrittura gli uomini primitivi avevano giĂ sviluppato lâidea dei numeri come elemento importante nellâuso e nella ripartizione delle poche risorse allora disponibili, prima di tutte le altre il cibo. Non si hanno date certe sullâinvenzione dei numeri e dellâaritmetica, ma si tende a ritenere che le prime tracce risalgano a circa trentamila anni fa. Alcuni studiosi ritengono che nelle prime forme rudimentali di numerazione lâuomo distinguesse tre grandezze: uno, due e molti. Una testimonianza tra le piĂč antiche dellâuso di una forma di numerazione risale a trentacinquemila anni prima di Cristo. Nelle montagne dello Swaziland nellâAfrica meridionale Ăš stato ritrovato un osso di babbuino che ha incise ventinove tacche che qualche studioso ha ipotizzato indichino un numero di animali, forse le prede uccise da un cacciatore. Altre tracce risalenti a quel periodo sono state ritrovate in Europa. Queste sono servite a dimostrare lâesigenza e la capacitĂ di contare (calcolare) che lâuomo ha avuto anche in epoche molto remote. Da queste prime forme di calcolo si sono sviluppati i sistemi astratti di numerazione decimale (facilitate dallâuso delle dita per contare) e binaria (basata su due cifre soltanto, 0 e 1). Esistono testimonianze certe che lâuomo del Paleolitico possedeva il concetto di numero e questa astrazione gli ha permesso di fare un balzo in avanti nella soluzione di molti problemi pratici legati alla sua vita quotidiana, come nel caso della gestione del bestiame o dellâuso delle risorse vitali. Lâevoluzione ha portato dopo diversi millenni ai sistemi di numerazione complessi sviluppati nellâantica Cina, in India, nella Mesopotamia e in Egitto. In particolare, di queste due ultime civiltĂ sono rimaste testimonianze molto importanti, incise su tavolette di argilla o scritte sui papiri, di procedure di calcolo molto complesse che dimostrano come la matematica a quel tempo, qualche millennio prima della nascita di Cristo, fosse giĂ molto avanzata e avesse contribuito al successivo sviluppo dellâaritmetica e della geometria nellâantica Grecia.
In maniera sorprendente si Ăš scoperto che in alcune tavolette di argilla dellâantica Mesopotamia sono stati impressi i primi algoritmi conosciuti che risolvevano brillantemente problemi pratici come il calcolo di unâarea o la soluzione di unâequazione. Dalle tavolette di argilla al papiro, alla pergamena e quindi al libro, i diversi supporti e le diverse forme di scrittura e di calcolo hanno regolato le vite dei popoli e delle Nazioni. Lâinvenzione del concetto di numero e, per il suo tramite, delle operazioni aritmetiche, hanno permesso agli uomini di alcune decine di migliaia di anni fa di risolvere problemi concreti e di gestire risorse e commerci come prima non poteva essere fatto. Nei secoli piĂč recenti la stampa di Gutenberg e successivamente le varie forme moderne dei mezzi di comunicazione, di produzione e diffusione del sapere e delle opere dâarte, hanno modificato sempre piĂč lâesperienza degli individui e regolato il loro rapporto con il mondo. Giornali, TV, cinema, le tante forme artistiche tradizionali e postmoderne hanno definito lo spazio di azione e di pensiero degli umani, guidando e definendo i loro modi di vivere da singoli e in comunitĂ , i loro modi di relazionarsi con la realtĂ . Al di lĂ delle complessitĂ di queste forme di astrazione e di rappresentazione della conoscenza, ognuna di esse non ha potuto fare a meno dellâuso dei simboli logico-matematici che hanno permesso di astrarre il concetto di quantitĂ (elemento centrale nello sviluppo delle scienze moderne) e di elaborarlo tramite operazioni sempre piĂč complesse che permettono di ottenere risultati numerici e logici ormai vitali per lâorganizzazione e il funzionamento delle nostre societĂ .
Come altre forme di calcolo e di ragionamento, anche gli algoritmi che oggi in moltissimi casi rappresentano gli elementi piĂč sofisticati nella gestione dei processi industriali, scientifici e organizzativi, hanno una storia lunga alcuni millenni. Da molto tempo il termine âalgoritmoâ indica una procedura da definire e da usare per la soluzione di un problema o per il calcolo di un risultato tramite una sequenza di passi operativi elementari1. Secondo questa definizione generale, ognuno di noi tutti i giorni esegue algoritmi. Lo facciamo quando prepariamo il caffĂš a casa usando la caffettiera, quando cuociamo gli spaghetti, quando guidiamo la nostra auto o mentre facciamo la spesa in un negozio. Dunque, gli algoritmi sono processi operativi che lâuomo ha sempre concepito e svolto per poter vivere. Tuttavia, la parola âalgoritmoâ Ăš legata al nome del matematico arabo Al-KhwÄrizmÄ«, vissuto intorno allâ800 d.C., il quale nellâanno 825 scrisse un libro, successivamente tradotto in latino con il titolo Algoritmi de Numero Indorum. Questo testo Ăš considerato il piĂč importante trattato antico sul sistema numerale indiano e ha permesso la diffusione del sistema dei numeri indo-arabi in Europa. Il volume di Al-KhwÄrizmÄ«, del quale si conosce soltanto la traduzione in latino, contiene numerose procedure di calcolo espresse come sequenze di operazioni matematiche, algoritmi appunto. Nel Basso Medioevo la pronuncia latina, algorismus, usata in Europa dal nome di Al-KhwÄrizmÄ«, serviva a indicare il sistema numerico decimale. Un ruolo importante in tutto questo lo ebbe il matematico toscano Leonardo Pisano, piĂč noto con il nome di Fibonacci. Usando anche materiale contenuto nel libro di Al-KhwÄrizmÄ«, Fibonacci nel 1202 scrisse in latino il suo Liber Abaci che Ăš uno dei piĂč poderosi e dettagliati trattati matematici scritti in Europa dopo quelli degli antichi greci, i quali comunque non avevano avuto la diffusione che ha registrato lâopera di Fibonacci. Il Liber Abaci Ăš un grande libro di calcolo e contiene numerosissimi algoritmi che ancora oggi si usano frequentemente. Molti di essi sono stati implementati in tanti programmi software che vengono eseguiti oggi dai nostri calcolatori.
Nonostante lâimportanza del matematico, geografo e astronomo arabo AbĆ« Jaâfar Muáž„ammad ibn MĆ«sÄ Al-KhwÄrizmÄ«, lâidea di esprimere calcoli matematici come sequenze di istruzioni da ripetere fino a raggiungere il risultato cercato Ăš molto piĂč antica del suo testo arabo e di quello di Fibonacci. Le tracce conservate in diversi musei, ad esempio al Louvre e al Museo di Berlino, dimostrano che giĂ intorno al 1800 a.C., cioĂš circa quattromila anni fa, i babilonesi definivano e usavano algoritmi per risolvere problemi di calcolo di grandezze fisiche o per realizzare procedimenti risolutivi che usavano quantitĂ numeriche. Quasi sicuramente queste conoscenze i babilonesi le avevano ereditate o condivise con altri popoli antichi come gli indiani e i cinesi. Le tavolette di argilla2 che provengono dalla Mesopotamia mostrano come i babilonesi usassero algoritmi per calcolare lâampiezza di unâarea agricola, il volume di una vasca da scavare, la soluzione di espressioni matematiche complesse o la serie delle potenze successive di 2. Da allora molte cose sono accadute, anche se per alcuni millenni gli algoritmi (come procedure di risoluzione di problemi tramite lâesecuzione di una sequenza di passi operativi) sono stati usati soltanto da un ristretto numero di matematici, ingegneri e scienziati. Successivamente lâinvenzione del calcolatore elettronico, avvenuta poco prima della metĂ del Novecento, e la sua larghissima diffusione a partire dagli ultimi decenni del secolo scorso, ha portato allo sviluppo, alla produzione e allâuso di un numero enorme di algoritmi. Ormai essi non sono soltanto usati come metodi di risoluzione di calcoli matematici, ma governano tutti i computer del mondo e contribuiscono alla automatizzazione di una grande parte de...