PRESENTAZIONE
L'informatica è
l'insieme dei metodi usati per l'elaborazione elettronica dell'informazione
(detta anche trattamento automatico dei dati). Il termine deriva dalla
contrazione delle parole informazione e automatica. Per eseguire le operazioni
sui dati, archiviarli in una memoria, confrontarli con altri, sottoporli a
calcoli, si usano moderne macchine elettroniche: i computer o elaboratori
elettronici. È da evitare il termine di "cervello elettronico"
invalso fino ad un po' di anni orsono. Esso sembra indicare un'analogia fra il
modo di funzionare di un computer ed il cervello umano: si tratta di un errore
grossolano, benché l'ambizione di ricreare elettronicamente le
caratteristiche della nostra intelligenza non sia assente dal panorama della
ricerca contemporanea, come mostrano le moderne ricerche sull'"intelligenza
artificiale".
I
computer vengono distinti approssimativamente in: a) grandi elaboratori o
mainframes, macchine di grandi dimensioni e di alto costo, progettate per
funzionare in collegamento con molti terminali; b) minicalcolatori, macchine di
dimensioni più modeste ma ugualmente dedicate al lavoro in collegamento
con terminali anche a grande distanza; c) personal computer, macchine progettate
per lavorare con un solo utente. Inoltre, "ai confini" rispettivamente
superiore ed inferiore della categoria si collocano i supermainframes, dotati di
grandissime capacità di calcolo ed impiegati, per esempio, nella
programmazione dei voli spaziali o nella ricerca più avanzata, e gli home
computer, o computer domestici, dedicati prevalentemente all'hobbistica e alla
didattica di base. Si tratta comunque di classificazioni estremamente
fluttuanti, sotto l'incalzare del progresso tecnologico: fino ad una quindicina
di anni orsono un mainframe era dotato di memorie e capacità di calcolo
che ora si trovano solo negli home computer più economici!
Le prime intuizioni relative alla possibilità di costruire macchine che velocizzassero il calcolo e le
operazioni ripetitive risalgono già all'antico mondo ellenico: ad
Alessandria il greco Eratostene progettò una macchina per eseguire
semplici calcoli con procedimenti, ovviamente, solo meccanici. Nel XVII secolo
il grande filosofo e matematico francese Blaise Pascal costruì una
macchina analoga ad una calcolatrice, ed un simile progetto agitò la
mente fervidissima di un altro filosofo del suo secolo, il tedesco Leibnitz, a
cui si deve anche una prima intuizione della possibilità di un linguaggio
di programmazione. Ma, al di là di questi "gloriosi" precedenti
storici, le prime macchine realmente assimilabili ai moderni computer furono
costruite intorno alla metà degli anni Quaranta del nostro secolo, sotto
la spinta delle necessità belliche. Uno dei primi problemi alla cui
soluzione esse furono applicate fu quello della decodificazione dei codici
cifrati nemici. La prima generazione di computer era caratterizzata dall'uso
delle valvole termoioniche, dispositivi elettronici che aprono o chiudono un
circuito a comando, ma che consumano molta corrente, sono lenti e producono
moltissimo calore. Un passo avanti fu realizzato con l'introduzione dei
transistor negli anni Cinquanta, che consentirono una riduzione di dimensioni ed
un miglioramento notevolissimo nelle prestazioni. Solo verso la fine degli anni
Sessanta si cominciarono a costruire i primi microprocessori, utilizzanti le
caratteristiche di un particolare metallo semiconduttore, il silicio, la cui
conducibilità aumenta all'aumentare della temperatura. I semiconduttori
hanno aperto la strada alla costruzione di circuiti integrati sempre più
piccoli (i chips), che nelle dimensioni talvolta di millimetri quadrati
inglobano le capacità di calcolo negate ai primi, enormi computer, i
quali richiedevano grandi stazioni con decine di tecnici.
Tutti i computer
sono costituiti di due parti: l'hardware ed il software. L'hardware è
l'insieme delle parti fisiche, elettriche e meccaniche del calcolatore. Il
software è l'insieme dei programmi, cioè degli ordini o messaggi
espressi in codice, che occorre fornire al calcolatore affinché questo
esegua il lavoro voluto. Il calcolatore è in definitiva una macchina che
manipola ed elabora numeri binari seguendo una sequenza organizzata di passi,
detta programma. Ciascun passo del programma è detto istruzione.
L'informatica entra oggi in tutti i campi della vita organizzata. I
calcolatori vengono usati: nelle aziende per la gestione della produzione, per
il movimento dei materiali nei magazzini, per la contabilità;
nell'industria per eseguire calcoli e progetti di strutture; negli aeroporti per
ricevere le prenotazioni; in medicina per eseguire diagnosi e tener sotto
controllo gli ammalati; nel televisore a colori per far funzionare i
telecomandi, nella vita domestica per coordinare gli elettrodomestici, per il
gioco, come ausilio nei compiti dei ragazzi, ecc.
Schema di impianto hardware
LE MEMORIE
Una memoria è un mezzo per conservare le
informazioni: è formata da un insieme di unità elementari ciascuna
delle quali può essere dotata di una carica elettromagnetica. In questo
modo può essere registrata un'informazione elementare, detta bit,
equivalente ad un valore binario, affermativo o negativo.
Le memorie
possono essere di vari tipi. Una prima classificazione è quella
comprendente memorie volatili e non volatili. Le memorie nelle quali le
informazioni immagazzinate scompaiono se manca l'alimentazione elettrica sono
dette volatili (o non permanenti); quelle in cui l'informazione registrata viene
conservata senza bisogno di mantenere l'alimentazione sono chiamate permanenti
(o non volatili).
Una seconda classificazione delle memorie, effettuata in
base al materiale di supporto sul quale vengono realizzate, è quella che
distingue le memorie a semiconduttore, realizzate ricorrendo alle tecnologie dei
circuiti integrati, dalle memorie magnetiche, realizzate su materiali
ferromagnetici. Concretamente, è questa la differenza che intercorre tra
le memorie interne dell'elaboratore ed i supporti, generalmente mobili, sui
quali vengono registrati i dati.
Una terza classificazione può
essere fatta in base al modo in cui i dati vengono organizzati nella memoria,
tra memorie a sola lettura (ROM, read-only memory) e memorie a lettura e
scrittura o memorie ad accesso casuale (RAM, random-access memory). Le ROM sono
memorie in cui i dati vengono scritti con tecniche diverse da quelle usate per
la lettura (fasci ultravioletti, raggi laser, ecc.) ed i dati in esse contenuti
non vengono meno al cessare dell'alimentazione elettrica. Vengono adoperate
prevalentemente per la registrazione dei dati "di sistema" (quelli che
permettono all'elaboratore di "capire" le informazioni che gli
giungono dall'utente o dalle periferiche) e, in tempi recenti, per la
preparazione di archivi di consultazione quali enciclopedie, repertori, ecc. Le
RAM vengono invece utilizzate come "aree di lavoro" dall'elaboratore:
in esse vengono provvisoriamente registrati i programmi in uso ed i dati man
mano elaborati, prima della registrazione definitiva sul supporto magnetico.
Nelle memorie vengono manipolate informazioni binarie, rappresentate da
cifre binarie o bit. I bit sono logicamente raggruppati in gruppi di otto, detti
bytes. Un byte consente di registrare 256 diverse combinazioni di bit. Per
questa ragione esso è considerato l'unità minima di registrazione
dei dati, ad esempio caratteri, numeri, ecc. La capacità di una memoria
è indicata dal numero totale di byte che essa può immagazzinare.
Comunemente, è invalso l'uso delle unità di misura chilobyte (o
Kbyte, 1024 byte) e megabyte (1024 Kbyte, pari ad oltre un milione di
byte).
LE PERIFERICHE
Col termine generico di "periferiche"
sono indicati tutti quei dispositivi che consentono di introdurre dati nel
computer o di ricevere i risultati della sua elaborazione. Ogni periferica, per
funzionare con un determinato computer, deve essere dotata di un'apposita
"interfaccia", ossia di un dispositivo hardware e software che le
consenta di trasferire i dati.
Le periferiche più importanti sono
senz'altro la tastiera ed il monitor, rispettivamente per l'introduzione (input)
e per l'uscita (output) dei dati, ma non può essere sottovalutata
l'importanza delle varie stampanti, a matrice di punti, a margherita, al laser,
termiche, che sono ormai un requisito essenziale di ogni impianto. In questi
ultimi anni moltissimi altri dispositivi si sono aggiunti ai tre fondamentali:
ricordiamo il mouse, che consente di muovere con una mano un indicatore presente
sul monitor, la penna ottica, per trasferire al computer un disegno preparato su
carta o anche per disegnare direttamente sul video, i vari tipi di scanner, e
per trasferire testi ed immagini senza doverli riscrivere o ridisegnare.
Un cenno a parte meritano quei dispositivi di input-output come i modem
(contrazione di MOdulatore- DEModulatore) e gli accoppiatori acustici, che
permettono di collegare più computer fra loro, anche a distanze enormi,
trasferendo e ricevendo dati e programmi per mezzo delle linee del telefono. La
loro diffusione in tempi recenti anche a livelli di massa sta aprendo grandi
prospettive ad un uso ancora più vasto del computer nel campo della
telematica. La telematica è una nuova branca dell'elettronica che si
occupa dell'impiego congiunto dei sistemi di telecomunicazione e
dell'informatica, ossia dell'informatica realizzata con i mezzi offerti dalle
telecomunicazioni. Il termine deriva dalla contrazione delle parole
TELEcomunicazioni e inforMATICA, cioè dal collegamento fra i calcolatori
e le linee di trasmissione.
A parere di molti la telematica è
l'informatica del futuro: la nostra epoca è infatti caratterizzata dalla
necessità di scambiare sempre più informazioni in maniera rapida,
e l'aumento del trattamento delle informazioni comporta una maggiore
necessità di trasmettere dati da un punto all'altro della Terra. I
problemi tecnici della telematica sono già in gran parte risolti, la sua
diffusione dipenderà solo da fattori socioeconomici e finanziari nelle
varie nazioni.
Stampante "Lexmark" a getto d'inchiostro
LA PROGRAMMAZIONE
Programmare un calcolatore significa comunicargli
in un modo univoco, ossia che non dia adito ad equivoci, le operazioni che deve
eseguire. La programmazione è la comunicazione degli ordini al
calcolatore. Un programma è una sequenza di istruzioni che guida l'azione
del computer come lo spartito o il disegno di una tessitura servono da modello
all'uomo nelle sue attività. I programmi per gli elaboratori si
distinguono per la loro complessità, che sfrutta la capacità dei
calcolatori di compiere calcoli anche molto complessi in tempi brevissimi. Il
computer non è in grado di prendere "realmente" decisioni in
proprio: deve quindi essere il programmatore a indicargli esattamente il
comportamento da adottare in tutti i casi che gli si possono presentare. Il
computer eseguirà alla lettera le istruzioni ricevute, senza rendersi
conto di eventuali inesattezze od errori: nel migliore dei casi segnalerà
che non riesce a "capire" cosa gli si sta chiedendo di fare.
La
programmazione si realizza mediante linguaggi (o codici) di programmazione: essi
rappresentano l'insieme delle istruzioni e delle regole che permettono la
comunicazione con il computer. I linguaggi di programmazione possono essere
suddivisi in tre categorie: linguaggi di macchina, diversi per ogni tipo di
calcolatore, linguaggi simbolici, sviluppati per facilitare la programmazione, e
linguaggi simbolici di alto livello, che rappresentano la forma più
avanzata di programmazione.
Un programma consiste di una sequenza di
istruzioni dettagliate fornite al calcolatore. Le istruzioni sono immagazzinate
nella memoria e sono richiamate quando sono necessarie. Poiché la memoria
può immagazzinare solo sequenze di "zero" ed "uno",
le istruzioni devono essere codificate in codice binario. Un programma formato
da istruzioni codificate in codice binario viene detto linguaggio di macchina,
ed è diverso per ogni calcolatore. Per semplificare il lavoro di
programmazione, sono stati adottati linguaggi simbolici (o linguaggi assembly),
che hanno la possibilità di rappresentare le istruzioni secondo delle
abbreviazioni più facilmente memorizzabili da parte del programmatore:
essi rappresentano quindi una sorta di versione "umanizzata" dei
linguaggi macchina. Un programma scritto in assembly, per essere compreso
dall'elaboratore, deve essere tradotto da un assembler in linguaggio macchina.
Per rendere la programmazione ancora più "facile" sono
stati sviluppati linguaggi simbolici di alto livello. In questi linguaggi
ciascuna istruzione corrisponde a più istruzioni del linguaggio di
macchina (da cinque a dieci), a differenza della corrispondenza di uno ad uno
dei linguaggi assembly. Anche i programmi sviluppati con questi linguaggi
richiedono, per essere "compresi" dall'elaboratore, di essere tradotti
in linguaggio macchina. La traduzione avviene in due modi. Con la compilazione i
programmi vengono tradotti "una volta per tutte": dopo di essa
funzioneranno senza più alcun intervento del compilatore. Con
l'interpretazione i programmi vengono tradotti "una istruzione alla
volta", senza venir definitivamente modificati. Richiederanno sempre la
presenza dell'interprete per funzionare e saranno quindi notevolmente più
lenti delle corrispondenti versioni compilate, che, per contro, saranno
più difficilmente accessibili per modifiche e correzioni.
Fra i
linguaggi di alto livello più diffusi ricordiamo:
1) Il Fortran
(FORmula TRANslator) è stato per molto tempo il linguaggio più
usato da ingegneri e scienziati ed è tuttora fra i più usati in
ambiente scientifico. La prima versione fu presentata nel 1954;
2) Il
Cobol (COmmon Business - Oriented Language) è orientato verso i problemi
commerciali; fu presentato nel 1958;
3) Il Basic (Beginner's All - purpose
Symbolic Instruction Code) usa istruzioni simili alla lingua inglese ed è
attualmente il linguaggio più diffuso sui personal computer. Fu
presentato nel 1965;
4) Il Pascal (chiamato così in onore di Blaise
Pascal) è altamente strutturato ed ha caratteristiche che lo rendono
utile per scrivere programmi sofisticati. Fu presentato da Niklaus Wirth nel
1973;
5) Il C (da "Compiler") è una via di mezzo fra un
linguaggio di alto livello, del quale ha la facile trasferibilità da una
macchina all'altra, ed un linguaggio assembly, di cui ha la velocità di
esecuzione.
Rappresentazione di linguaggi