Sei sulla pagina 1di 4

Storia

Magnifying glass icon mgx2.svg Lo stesso argomento in dettaglio: Storia del computer.

La macchina analitica di Charles Babbage

Il computer è la versione più evoluta di una serie di strumenti di calcolo inventati sin dall'antichità tra i quali
l'abaco, la macchina di Anticitera, i bastoncini di Nepero; gli esemplari di macchine calcolatrici più famosi in
età moderna sono forse la macchina di Pascal (1645) e la macchina di Leibniz (1672), ma va ricordata anche
la macchina calcolatrice di Wilhelm Schickard, del 1623, della quale sono rimasti soltanto i progetti.

Il passaggio da macchina calcolatrice a vero e proprio computer (nel senso di dispositivo programmabile) si
deve a Charles Babbage: la sua Macchina analitica, progettata nel 1833, anche se mai realizzata, è
considerato il primo esempio di computer della storia; si trattava di una colossale macchina a ingranaggi,
alimentata a vapore e dotata di input, output, unità di memoria, di unità di calcolo decimale con registro
dell'accumulo dei dati e di un sistema di collegamento tra le varie parti e contrariamente a quanto si
potrebbe pensare, era interamente digitale.[15]

Nel corso dei decenni successivi il computer è passato attraverso vari stadi evolutivi: il computer analogico
(ne è un esempio l'analizzatore differenziale di Vannevar Bush del 1927), la macchina di Turing, i computer
digitali meccanici ed elettromeccanici (la Serie Z di Konrad Zuse, la macchina di Stibitz e l'ASCC di Howard
Aiken) ed infine quelli digitali ed elettronici (l'ABC di John Vincent Atanasoff e Clifford Berry, l'ENIAC di John
Presper Eckert e John Mauchly, il Colossus britannico); nel corso del XX secolo, inoltre, importanti progressi
nel campo dell'elettronica - come il transistor e il circuito integrato - e dell'informatica hanno contribuito
all'evoluzione del computer nella sua forma attuale passando da dispositivo elettronico presente solo in
aziende e centri di ricerca a dispositivo ad uso comune e consumo di massa per gli utenti comuni.

Descrizione

La componentistica hardware, generalmente racchiusa all'interno di un contenitore denominato case,


comprende la scheda madre, la CPU, l'alimentatore elettrico, la memoria primaria e la memoria di massa,
più eventualmente altre schede preposte a funzioni accessorie o complementari,[16] come ad esempio una
o più schede video o una scheda audio.[17]

Sostanzialmente, i calcolatori si dividono in analogici e digitali:

un calcolatore analogico è un tipo di calcolatore che elabora i problemi per analogia, o in termini più
scientifici, per quantità continue (cioè ammette valori infiniti);

un calcolatore digitale è un tipo di calcolatore che elabora i problemi digitalizzando, ovvero le quantità che
considera sono discrete (cioè ammette valori finiti).

I dati cioè, possono essere rappresentati in due modi, analogico o digitale:[18] un dato analogico è una
rappresentazione continua, analoga all'informazione effettiva che rappresenta, mentre un dato digitale è
una rappresentazione discreta, che spezza l'informazione in elementi distinti poiché l'elaborazione viene
eseguita per passi finiti (vedi algoritmo). L'informatica, per come si è sviluppata, ha preso maggiormente in
considerazione la seconda categoria di calcolatori. La prova è che i computer contemporanei funzionano
secondo l'algebra booleana, ovvero la logica di funzionamento di un normale computer ammette due stati
precisi, rappresentati dalle cifre 0 e 1. Esempi di calcolatori analogici odierni sono il termometro e l'orologio
tradizionali: nonostante vi siano gli indicatori dei gradi o delle ore, in realtà essi non sono sufficienti per
astrarre la posizione esatta del mercurio o delle lancette.[18][19] Il mercurio nel termometro sale con
continuità lungo le tacche, mentre un termometro digitale calcola la temperatura secondo una logica
binaria e discreta.

Struttura logica

Magnifying glass icon mgx2.svg Lo stesso argomento in dettaglio: Architettura (computer).

Architettura di von Neumann

La struttura logica del computer attuale può ricondursi alla presenza di almeno cinque elementi
fondamentali o sottosistemi:

Unità centrale di elaborazione (UCE o CPU, acronimo di Central Processing Unit);

Memoria;

Schede elettroniche di espansione;

Dispositivi di input/output;

Canale di comunicazione dei dati (o Bus).

Questo schema venne proposto per la prima volta dal matematico John von Neumann all'interno di uno
scritto informale del 1945 noto come First draft of a report on the EDVAC e va sotto il nome di architettura
di von Neumann.[20] L'opera nasce dalla partecipazione di von Neumann al progetto ENIAC e raccoglie le
idee provenienti da vari membri del team di sviluppo su come migliorare la funzionalità del computer
nascituro.

Va inoltre ricordato che von Neumann era stato profondamente influenzato da Alan Turing,[21] il quale
aveva proposto nel 1937[22] un modello di calcolo - passato alla storia come Macchina di Turing - che ben
si prestava a descrivere le operazioni eseguite da un computer, pur non essendo stato concepito per quello
scopo (Turing si stava occupando in quella sede del problema della computabilità, non della realizzazione di
un calcolatore). Il funzionamento della Macchina di Turing suggerì a von Neumann l'idea che la memoria
dovesse contenere non solo i risultati delle operazioni svolte dal computer, ma anche le istruzioni di
programmazione.

Premesso il contributo degli altri progettisti dell'ENIAC e quello di Alan Turing, a von Neumann va il merito
di aver approfondito, arricchito e messo a sistema gli spunti raccolti: motivo per il quale la struttura logica
sopra indicata è oggi nota come architettura di von Neumann.
Hardware, software, programmazione

Magnifying glass icon mgx2.svg Lo stesso argomento in dettaglio: Hardware, Software e Programmazione
(informatica).

«I computer sono inutili . Ti danno solo risposte»

(Pablo Picasso)

Livelli di astrazione ed esecuzione dal software all'hardware

A differenza della mente umana, intesa come attività del cervello, che è in grado di affrontare e risolvere
problemi nuovi a mezzo di facoltà cognitive come intuizione e ragionamento, il computer, in quanto
macchina, pur partendo ugualmente da dei dati in input, è invece un semplice esecutore di ordini, compiti o
istruzioni impartite dall'esterno per risolvere determinati problemi d'interesse attraverso un algoritmo di
risoluzione del problema stesso in modo tale che a partire da determinati input produca determinati output
attraverso elaborazione degli stessi. Esso nasce dunque per eseguire programmi o applicazioni: un
computer senza un programma da eseguire è inutile.

Il computer, in quanto esecutore, ha dunque bisogno di essere istruito o programmato dall'esterno per
mano competente di un programmatore, il quale comunica/interagisce con la macchina attraverso i
linguaggi di programmazione ad alto, medio o basso livello di astrazione (linguaggio macchina), che si
differenziano tra loro secondo vari paradigmi di programmazione. Queste parti immateriali che consentono
l'utilizzo di programmi vengono comunemente chiamate software in contrapposizione all'hardware che è
invece la parte fisica (elettronica), nel senso di materiale e tangibile, degli elaboratori e che consente
l'esecuzione dei programmi stessi. Tutto ciò che si può ottenere con l'utilizzo accoppiato di strumenti
informatici o risorse hardware e software costituisce un 'applicazione informatica. Tutto il resto, oltre ad
hardware e software, sono i dati presenti nella memoria del computer, compresi all'interno di file e
directory ed utilizzati in input dai programmi stessi per l'espletamento in output del particolare servizio
richiesto dall'utente.

Ovviamente quando si lavora su un computer scompare agli occhi dell'utilizzatore il funzionamento


hardware interno della macchina interfacciandosi con essa unicamente tramite il linguaggio di
programmazione ad alto livello oppure grazie all'interfaccia utente del software stesso garantendo così
quella grande flessibilità di utilizzo anche a chi non ne conosce i principi fisico-elettronici di funzionamento
e che costituisce, assieme alla potenza di elaborazione, a quella di memorizzazione e alla
riprogrammabilità, la chiave di successo dei computer stessi. Questo processo di astrazione a partire dal
livello fisico è comune a tutta l'informatica.

Codice sorgente di un programma


Il programma o software di base di gran lunga più importante per un computer (se previsto nell'architettura
generale) senza il quale la macchina non potrebbe funzionare è il sistema operativo, che si occupa di gestire
la macchina, le sue risorse hardware e le altre applicazioni che vi sono eseguite.[23] Fornisce così all'utente
un'interfaccia (grafica o testuale) con la macchina gestendo o coordinando in maniera efficiente le
operazioni di Input/Output comandando le rispettive periferiche di sistema, gestendo le operazioni di
esecuzione dei programmi applicativi assegnandovi di volta in volta le risorse hardware necessarie al
processamento (scheduling) ed infine gestendo l'archiviazione e l'accesso ai dati memorizzati attraverso il
cosiddetto file system.

Dal punto di vista hardware il computer inoltre è un sistema elettronico digitale (programmabile) che
elabora cioè tutti i dati in formato digitale o numerico ovvero come sequenze di 0 e 1 corrispondenti a due
livelli di tensione (alto e basso) corrispondenti a loro volta ai due stati fisici di interruttore aperto e chiuso.
La logica elettronica interna di funzionamento è dunque basata sull'Algebra di Boole. Il linguaggio
dell'hardware è propriamente un linguaggio macchina ovvero sequenze di bit cui si associano per semplice
codifica i linguaggi a più alto livello. Ovviamente l'immissione dei dati in input alla macchina elaboratrice è
di tipo alfa-numerico decimale per cui è necessaria un'operazione di traduzione o codifica delle
informazioni in binario; viceversa per ottenere una visualizzazione in output dei risultati dell'elaborazione è
necessaria una traduzione o codifica inversa da binario ad alfa-numerico decimale. Tale codice è
generalmente il codice ASCII.

A larghe linee la progettazione di sistemi di elaborazione a livello hardware ricade in massima parte nel
campo dell'ingegneria informatica (la quale a sua volta afferisce conoscenze dall'ingegneria elettronica),
mentre lo sviluppo software è affidato in massima parte al campo dell'informatica pura. Pur tuttavia i
confini tra le due discipline non sono rigidi bensì spesso assai sfumati.

Potrebbero piacerti anche