Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Computer - Tecnologia dei computer

informatica




Computer Dispositivo elettronico in grado di ricevere ed eseguire sequenze di istruzioni svolgendo calcoli ed elaborazioni su dati numerici o altri tipi di informazione. Computer diversi per funzioni e dimensioni trovano impiego in svariate realtà sociali ed economiche: nella gestione delle informazioni riservate degli organi di governo, nelle transazioni bancarie, nella didattica, nella contabilità domestica. Il computer ha aperto una nuova era nella produzione industriale, con lo sviluppo delle tecniche di automazione, 838c24i e nella comunicazione, con lo sviluppo di nuovi sistemi di trasmissione sempre più rapidi ed efficienti. È oggi uno strumento indispensabile in ogni campo della ricerca e della tecnologia, ad esempio per la definizione di modelli dei fenomeni naturali o per le previsioni meteorologiche. Il suo impiego ha aperto nuovi campi d'indagine su problemi la cui complessità li rendeva prima assolutamente irrisolvibili. I servizi di database e le reti di computer rendono disponibile una grande varietà di fonti informative a una popolazione di utenti in continua crescita.

Tecnologia dei computer



Benché si pensi generalmente ai computer come a dispositivi prettamente digitali, esistono computer digitali e computer analogici. La distinzione si basa sulla forma in cui si presentano le informazioni sottoposte a elaborazione o memorizzazione.

I computer analogici sono dispositivi elettronici progettati per gestire segnali di ingresso costituiti non da dati numerici discreti, ma da segnali continui che rappresentano i valori di grandezze fisiche continue, quali la tensione elettrica o la pressione di un fluido. La caratteristica principale di questo tipo di elaboratori sta proprio nella capacità di trattare grandezze che variano con continuità. Trovano applicazione nella simulazione di fenomeni fisici e nel controllo dei processi industriali.

I computer digitali trattano invece dati espressi in forma di opportune combinazioni numeriche discrete. Qualunque informazione introdotta in un computer per mezzo di un dispositivo di ingresso, quale la tastiera, prima di essere elaborata deve essere tradotta in un codice comprensibile al computer, basato sul sistema numerico binario. La tecnica di elaborazione di un computer digitale si fonda infatti sulla capacità di distinguere tra due diversi stati di funzionamento, propri dei circuiti che costituiscono l'unità di elaborazione: ON e OFF, o livello alto e livello basso (con riferimento ai valori di tensione) o, con simbologia numerica binaria, 1 e 0. La rapidità di un computer digitale dipende dalla frequenza del suo segnale di sincronizzazione (vedi Clock del processore) e si misura in megahertz (milioni di cicli al secondo); in prima approssimazione essa esprime il numero di operazioni elementari che il microprocessore tratta nell'unità di tempo. Oggi molti personal computer sono dotati di processori con frequenze di clock superiori ai 100 MHz, mentre i supercomputer usati per la ricerca scientifica e per le applicazioni militari raggiungono velocità di miliardi di cicli al secondo. La velocità e la potenza di calcolo dei computer digitali dipende anche dalla quantità di dati trattata in ogni ciclo. Se un computer fosse in grado di leggere a ogni ciclo lo stato di un unico circuito elementare, potrebbe scegliere solo tra due alternative: lo stato ON rappresenterebbe un'operazione o un numero, lo stato OFF un'altra operazione o numero. I computer invece sono in grado di controllare contemporaneamente più circuiti elementari, che complessivamente codificano un'informazione. Ad esempio, un computer che può leggere nello stesso momento lo stato di due elementi, può distinguere fra quattro combinazioni di cifre binarie (00, 01, 10, 11) e quindi eseguire a ogni ciclo una delle quattro possibili istruzioni associate (codificate con le quattro possibili combinazioni degli stati dei due elementi: OFF-OFF, OFF-ON, ON-OFF e ON-ON).

Sistemi di elaborazione che contengono elementi di entrambi i tipi (analogici e digitali) sono detti ibridi. Trovano impiego soprattutto nello studio di problemi che coinvolgono un alto numero di equazioni differenziali. I dati in forma analogica possono essere acquisiti da un computer digitale attraverso un convertitore analogico-digitale; la conversione opposta viene eseguita da un convertitore digitale-analogico.

Storia

La prima macchina per addizioni, lontano precursore del computer digitale, fu inventata nel 1642 dal filosofo e scienziato francese Blaise Pascal. Era costituita da una serie di ruote a dieci denti, ciascuno associato a una cifra compresa tra 0 e 9. Le ruote erano collegate in modo che i numeri potessero essere sommati facendo avanzare le ruote del giusto numero di denti. Intorno al 1670, il filosofo e matematico tedesco Gottfried Wilhelm Leibniz perfezionò la macchina di Pascal, realizzandone una capace di eseguire anche le moltiplicazioni.

Anche l'inventore francese Joseph-Marie Jacquard contribuì inconsapevolmente alla nascita dell'elaboratore: progettando un telaio automatico usò sottili tavolette di legno perforate per controllare la tessitura di motivi complicati. Negli anni Ottanta dell'Ottocento, l'ingegnere statunitense Herman Hollerith sviluppò l'idea di elaborare dati usando schede perforate simili alle tavolette di Jacquard. Con un sistema che faceva passare schede perforate sopra opportuni contatti elettrici, egli riuscì a compilare elaborazioni statistiche per il censimento degli Stati Uniti del 1890.

La macchina analitica

Sempre nel XIX secolo, il matematico e inventore britannico Charles Babbage progettò una serie di macchine, tra cui la macchina delle differenze e la macchina analitica, capaci di trattare problemi matematici complessi secondo un principio di funzionamento assai vicino a quello dei moderni computer digitali. Molti storici considerano Babbage e la sua collega, la matematica Augusta Ada Byron (1815-1852), sorella del poeta George Gordon Byron, gli inventori del moderno computer digitale. La macchina analitica possedeva infatti molte delle prestazioni di un moderno calcolatore: aveva un flusso di dati in ingresso costituito da una pila di schede perforate, un "magazzino" (store) per conservare i dati, una "fabbrica" (mill) per svolgere le operazioni aritmetiche, e una stampante che produceva una registrazione permanente. La tecnologia del tempo non fu in grado, tuttavia, di tradurre i progetti di Babbage in dispositivi d'uso pratico.

I primi computer

La realizzazione di computer analogici iniziò nei primi anni del XX secolo. I primi modelli, che eseguivano calcoli per mezzo di aste e ingranaggi rotanti, permisero di determinare approssimazioni numeriche di equazioni estremamente complesse. Durante le due guerre mondiali, calcolatori analogici meccanici, e più tardi elettrici, furono usati per programmare la traiettoria dei siluri sui sommergibili e come dispositivi di puntamento per l'artiglieria aerea.

I computer elettronici

Durante la seconda guerra mondiale, una squadra di scienziati e matematici che operava a Bletchley Park, a nord di Londra, creò una macchina chiamata Colossus, contenente 1500 tubi a vuoto, considerata il primo computer digitale interamente elettronico. Nel mese di dicembre del 1943 Colossus era operativo; esso fu usato dal gruppo guidato dal matematico britannico Alan Turing per interpretare i messaggi radio cifrati dei tedeschi. Indipendentemente da Colossus, un prototipo di macchina elettronica era stato realizzato negli Stati Uniti fin dal 1939, da John Atanasoff e Clifford Berry presso l'Iowa State College.

Le successive ricerche portarono nel 1945 allo sviluppo del computer ENIAC (Electronic Numerical Integrator and Computer). Esso conteneva 18.000 tubi a vuoto e vantava una velocità operativa di molte centinaia di moltiplicazioni al minuto, ma il suo programma era cablato negli stessi circuiti del processore, il che imponeva che la programmazione venisse effettuata mediante aggiustamenti manuali della circuiteria. Il modello successivo di elaboratore elettronico, realizzato in base agli studi del matematico ungaro-statunitense John Neumann, fu dotato di un "magazzino" a parte per i programmi. Il fatto che le istruzioni venissero registrate in un'apposita memoria liberava il computer dalle limitazioni di velocità dovute alla lettura del nastro perforato durante l'esecuzione dei programmi e permetteva di ottenere l'esecuzione di compiti diversi senza alcun intervento sui collegamenti.



L'uso dei transistor al silicio nei computer, negli ultimi anni Cinquanta, segnò l'avvento di elementi logici più piccoli, veloci e versatili di quelli realizzabili con i tubi a vuoto. I transistor, più durevoli e meno costosi in termini di potenza, permisero la messa a punto di elaboratori più evoluti, compatti, veloci ed economici: i "computer di seconda generazione".

I circuiti integrati

I primi circuiti integrati (IC) comparvero verso la fine degli anni Sessanta. Permisero di realizzare numerosi transistor e relativi collegamenti su un unico substrato di silicio. Il loro impiego nei computer produsse ulteriori riduzioni del prezzo e delle dimensioni delle macchine e un significativo incremento della loro funzionalità. Il microprocessore fece la sua comparsa alla metà degli anni Settanta, quando furono prodotti circuiti a grande scala di integrazione (Large Scale Integration, LSI) e poi a grandissima scala di integrazione (Very Large Scale integration, VLSI), contenenti milioni di transistor interconnessi, realizzati su un'unica piastrina di silicio.

Le macchine degli anni Settanta, in genere, potevano riconoscere gruppi di otto stati; in altre parole, potevano trattare otto cifre binarie (binary digits, o bit) a ogni ciclo. Un gruppo di otto bit costituisce un byte; un byte può assumere 28=256 possibili configurazioni di stati ON e OFF (1 o 0). Ognuna di queste configurazioni può rappresentare un'istruzione, una sua parte o un dato, come un numero, un carattere o un simbolo grafico. La combinazione 11010010, ad esempio, può rappresentare un dato numerico binario o un'istruzione, come "confronta il contenuto di un registro con quello di una data cella di memoria".

Un computer che elabora le informazioni a gruppi contemporanei di 8 bit viene detto computer a 8 bit. Tale designazione può far riferimento sia alla lunghezza di parola (unità base di informazione elaborata) del microprocessore sia, più comunemente, al numero di bit trasferiti in una singola operazione lungo il bus dei dati, che è la via di collegamento lungo la quale le informazioni viaggiano da o verso il microprocessore. Dunque, un microprocessore a 8 bit ha lunghezza di parola di 8 bit, o di un byte; un bus-dati a 8 bit ha 8 linee, perciò trasporta informazioni attraverso il sistema in gruppi contemporanei di 8 bit. Allo stesso modo, un computer a 16 bit elabora le informazioni in gruppi contemporanei di 16 bit e uno a 32 bit elabora a ogni passo un gruppo di 32 bit.

Lo sviluppo di computer capaci di trattare in blocco combinazioni di 16, 32 o 64 bit aumentò la velocità di elaborazione. L'insieme di tutte le combinazioni di bit che un computer è in grado di riconoscere come comandi, cioè l'elenco completo delle sue istruzioni, è detto set di istruzioni. Entrambe queste caratteristiche (bit trattati in un passo e dimensioni del set di istruzioni) sono in continuo miglioramento nei moderni elaboratori.

Tipologia dei computer

Gli attuali calcolatori digitali, benché tutti concettualmente simili, possono essere classificati in diverse categorie a seconda delle prestazioni e del costo: i personal computer, o microcomputer, sono macchine relativamente economiche, di dimensioni adatte, di norma, a una scrivania (ma ve ne sono ormai delle dimensioni di un libro); le workstation (stazioni di lavoro) sono computer con avanzate prestazioni grafiche e di comunicazione, particolarmente utili nel lavoro d'ufficio e spesso collegati in rete locale o estesa; i minicomputer sono macchine di dimensioni maggiori, in genere troppo costose per l'uso personale, con potenzialità sufficienti per un'azienda, una scuola o un laboratorio; infine i mainframe computer sono macchine assai costose, in grado di soddisfare le esigenze di una grande impresa commerciale, di un ministero, di un centro di ricerca scientifica o di altre strutture analoghe; i più grandi e veloci mainframe sono detti supercomputer.

Famiglie di computer

Un gruppo di computer basati sullo stesso microprocessore o su una serie di microprocessori simili, che condividono caratteristiche di progetto significative, costituiscono una famiglia di computer. Ad esempio, i computer Apple Macintosh, rappresentano una famiglia progettata dalla Apple intorno ai microprocessori Motorola 68000, 68020 e 68030. Così, i computer IBM PC e i modelli di "seconda generazione" PS/2 possono essere considerati una famiglia (IBM PC), realizzata intorno ai microprocessori della serie Intel iAPx86. Da un altro punto di vista, si può considerare una famiglia di computer anche l'insieme di tutte le macchine che impiegano lo stesso microprocessore. In questo senso, i modelli IBM e tutte le macchine compatibili possono essere considerate parti di un raggruppamento più vasto, vale a dire la famiglia dei computer iAPx86. In genere, computer di famiglie diverse non sono automaticamente compatibili (in grado di usare lo stesso sistema operativo e gli stessi programmi applicativi).

L'hardware

In informatica il termine hardware indica le componenti elettroniche e meccaniche di un elaboratore. In un computer digitale si possono distinguere cinque categorie di elementi hardware: 1) una unità centrale di elaborazione (CPU, Central Processing Unit); 2) i dispositivi di ingresso; 3) i dispositivi di memoria; 4) i dispositivi di uscita e 5) una rete di comunicazione, detta bus, che collega tutti gli elementi del sistema e permette al computer di comunicare con l'esterno.

Unità centrale (CPU)

L'unità centrale di elaborazione può essere realizzata con un solo circuito integrato o con più integrati collegati. Oltre a svolgere operazioni aritmetiche e logiche, temporizza e controlla le operazioni di tutti gli altri elementi del sistema. Le tecniche di miniaturizzazione e integrazione hanno reso possibile lo sviluppo della CPU su un chip singolo, o in altre parole del microprocessore, che contiene anche circuiti ausiliari e memoria. L'introduzione del microprocessore, presente ormai nella maggior parte dei personal computer, ha permesso una riduzione della circuiteria di supporto e delle dimensioni complessive del computer.

In generale una CPU (o un microprocessore) è composta da quattro sezioni: 1) un'unità aritmetico/logica (ALU, Arithmetic/Logic Unit); 2) alcuni registri; 3) una sezione di controllo; 4) un bus interno. L'ALU, sede delle capacità di calcolo, svolge operazioni aritmetiche e logiche. I registri sono spazi di memoria temporanei che conservano i dati e gli indirizzi delle istruzioni, i risultati delle operazioni e le locazioni in cui queste informazioni vanno archiviate. La sezione di controllo svolge tre funzioni principali: temporizza e regola le operazioni dell'intero sistema; per mezzo di un decodificatore di istruzioni legge le relative combinazioni in un apposito registro, le riconosce e produce le azioni necessarie per la loro esecuzione; infine, mediante l'unità di interrupt (interruzione) stabilisce l'ordine in cui i diversi dispositivi del sistema possono utilizzare le risorse della CPU e regola gli intervalli di tempo di lavoro che la CPU stessa deve destinare a ciascuna operazione. L'ultimo elemento strutturale di una CPU o di un microprocessore è il bus interno, una rete di linee di comunicazione che collegano le diverse parti del processore tra loro e ai terminali esterni. Una CPU ha tre diversi tipi di bus: 1) un bus di controllo, costituito da linee che ricevono segnali dall'esterno e da altre che trasportano all'esterno i segnali di controllo prodotti dalla CPU; 2) il bus degli indirizzi, unidirezionale, che trasporta i segnali per la selezione delle locazioni di memoria; 3) il bus dei dati, bidirezionale, che porta alla CPU i dati letti in memoria e alla memoria i nuovi dati.



Dispositivi di ingresso

I dispositivi di ingresso permettono all'utente di inviare alla CPU dati, comandi e programmi. Il più comune dispositivo d'ingresso è la tastiera, simile a quella di una macchina da scrivere, che trasforma ciascun carattere battuto in una combinazione di bit leggibile dal computer. Altri sono la penna ottica, usata in combinazione con la tavoletta grafica; il joystick e il mouse, che controllano il movimento di un cursore sullo schermo; lo scanner ottico, che "legge" pagine stampate traducendone le immagini e i caratteri in sequenze di bit elaborabili o memorizzabili da un computer; infine, i riconoscitori vocali, che traducono le parole pronunciate dall'utente in segnali digitali. Anche i dispositivi di memoria possono essere usati per trasferire dati verso l'unità di elaborazione.

Dispositivi di memoria

I sistemi di calcolo possono immagazzinare dati in due tipi di memoria: la memoria di lavoro (interna) e la memoria di massa (esterna). Le memorie di lavoro contengono dati temporanei e sono costituite da RAM (Random Access Memory, memoria ad accesso casuale) integrate, montate direttamente sulla scheda principale del computer oppure su schede aggiuntive (espansioni), inserite nella principale mediante appositi connettori. Una RAM integrata contiene oltre un milione di circuiti elementari a transistor, il cui stato (binario) può essere imposto mediante comandi elettrici. In assenza di comandi, le RAM statiche mantengono i propri dati inalterati finché l'integrato viene alimentato (cioè finché riceve energia elettrica da un generatore); nelle RAM dinamiche, invece, i dati devono essere periodicamente letti e riscritti per non essere persi (questa operazione, detta "rinfresco", deve essere eseguita a intervalli che non superino i due millisecondi).

Le memorie ROM (Read-Only Memory, memoria di sola lettura) contengono circuiti elementari il cui stato, fissato in fase di costruzione, non può essere variato mediante comandi esterni. Su queste memorie, non cancellabili, sono raccolti comandi, dati e programmi necessari al corretto funzionamento del computer. Le RAM, dunque, possono essere scritte ripetutamente, ma si cancellano quando il computer viene spento; il contenuto delle ROM invece può essere soltanto letto, ma è permanente. Entrambe le memorie sono collegate alla CPU.

Le memorie di massa non risiedono sulla scheda principale del computer. Le più diffuse immagazzinano i dati in forma di alterazioni dello stato magnetico di un supporto sensibile, come il nastro di un registratore o, più comunemente, un disco rivestito da un sottile strato di materiale magnetico, come il floppy disk o l'hard disk. Nella maggior parte dei grandi sistemi di calcolo vengono impiegate unità di memoria con banchi di nastri magnetici. I floppy disk possono contenere dalle centinaia di migliaia a oltre un milione di byte. Gli hard disk (dischi rigidi o dischi fissi), capaci di contenere da parecchi milioni a oltre un miliardo di byte, non possono essere estratti dal loro alloggiamento nel circuito che li pilota e che contiene i dispositivi di lettura e scrittura. I CD-ROM, che impiegano tecnologie ottiche simili a quelle dei compact disc (CD) per riproduzioni audio, permettono di raggiungere capacità di memoria di diversi miliardi di byte.

Dispositivi di uscita

I dispositivi di uscita rendono visibili all'utente i risultati dei calcoli e delle elaborazioni eseguiti dal computer. Il più comune è l'unità video (Video Display Unit, VDU), simile a uno schermo televisivo, che visualizza caratteri e immagini. Una VDU consiste di norma di un tubo a raggi catodici simile a quello di un televisore, ma i computer portatili impiegano visualizzatori a cristalli liquidi (Liquid Crystal Display, LCD) o schermi elettroluminescenti. Tra gli altri dispositivi di uscita si citano la stampante e il modem. Quest'ultimo permette di collegare due o più computer operando sui segnali digitali una modulazione che permette la trasmissione dei dati attraverso una rete di comunicazioni.

Il software

Software è un termine molto ampio che indica l'insieme dei programmi e dei linguaggi di programmazione che permettono l'utilizzo dell'hardware di un computer. Il software di base rappresenta lo "strato" di programmi, tra cui il sistema operativo, più prossimo all'hardware. Il software applicativo è composto invece dai programmi e dai linguaggi utilizzati per funzioni specifiche di alto livello, come la gestione di testi, l'archiviazione di dati o la navigazione in Internet.

I sistemi operativi

Le diverse periferiche di un computer gestiscono i dati in forme generalmente diverse da quelle proprie dell'elaboratore. I sistemi operativi interni, registrati nella ROM, hanno lo scopo primario di coordinare e adattare i flussi di dati provenienti da sorgenti diverse, quali i disk drive e i coprocessori (circuiti integrati con capacità di elaborazione, in grado di operare contemporaneamente all'unità centrale). Un sistema operativo è un programma di controllo che svolge operazioni fondamentali, risiede in una memoria interna permanente e interpreta i comandi di utente che richiedono varie specie di servizi, come la visualizzazione, la stampa o la copiatura di un file, il raggruppamento logico dei file in una directory o l'esecuzione di un programma.

I programmi

Un programma è una sequenza di istruzioni che indica all'hardware di un calcolatore le operazioni da eseguire per l'elaborazione dei dati. I programmi possono essere vincolati alla struttura del calcolatore, come nel caso dei computer specializzati per un'unica funzione, detti "dedicati" (ad esempio, quelli presenti nelle calcolatrici tascabili, negli orologi da polso o nelle automobili) o possono esserne indipendenti. Un computer per applicazioni generali contiene sì alcuni programmi o istruzioni non modificabili, rispettivamente nelle ROM e nel processore, ma dipende da programmi esterni per lo svolgimento delle funzioni applicative, quali ad esempio l'elaborazione di testi o la realizzazione di immagini grafiche. Una volta programmato, un computer può compiere tutte e sole le funzioni che il software di cui dispone gli permette.

I linguaggi

Un computer deve ricevere le istruzioni espresse in un opportuno linguaggio di programmazione; in altre parole, il sistema deve poter associare a ogni comando impartito dal programmatore una specifica combinazione di cifre binarie. Nei primi computer, la programmazione era assai laboriosa, poiché lo stato degli elementi circuitali binari realizzati con i tubi a vuoto doveva essere predisposto manualmente. Squadre di tecnici impiegavano giorni per programmare semplici attività come la disposizione in ordine alfabetico di un elenco di nomi. I progressi nel settore dell'informatica hanno portato, per passi successivi, allo sviluppo di diversi tipi di linguaggi di programmazione, alcuni orientati in modo specifico a funzioni definite, altri ideati in modo da risultare di semplice impiego (approccio "amichevole" o "user-friendly").



Linguaggio macchina

Il linguaggio, o codice macchina, è costituito da combinazioni di stati binari direttamente comprensibili al computer. Un programmatore di linguaggio macchina deve inserire ogni dato o comando in forma binaria; ad esempio, una semplice operazione come "confronta il contenuto di un registro con il dato presente in una certa locazione di memoria" può richiedere la scrittura di una sequenza del tipo: 11001010 00010111 11110101 00101011. La programmazione in linguaggio macchina, oggi non più necessaria, permetterebbe di ottimizzare i programmi per svolgere compiti ben precisi, ma richiede talmente tanto tempo che viene generalmente sostituita con altri tipi di programmazione.

Linguaggio assembly

Il linguaggio assembly è un codice ideato dai programmatori per abbreviare e semplificare la scrittura dei programmi. Consiste nell'assegnare a ciascun comando in linguaggio macchina un breve codice, in genere di tre lettere, che ne richiami il significato (ad esempio JMP per "jump"). Così, la scrittura di un programma o le operazioni di debug (correzione degli errori nella logica o nei dati) possono essere svolte molto più facilmente che lavorando su codici binari. Nei linguaggi assembly, ogni codice mnemonico corrisponde a un'istruzione in linguaggio macchina. Un programma assemblatore provvede a tradurre la sequenza di istruzioni scritta in termini mnemonici, detta codice sorgente, nella corrispondente sequenza di codici binari in linguaggio macchina, detta codice oggetto; quindi provvede all'esecuzione del programma. I linguaggi assembly hanno lo svantaggio di essere specifici per ogni tipo di CPU o di microprocessore; questo impone che un programmatore conosca diversi linguaggi assembly per poter programmare macchine differenti. Per questo motivo si è reso necessario lo sviluppo di nuovi linguaggi nei quali un'unica espressione simbolica rappresenti più di un'istruzione in linguaggio macchina, e di un sistema che permetta allo stesso programma di "girare" su macchine di diverso tipo. Tale necessità ha portato alla creazione dei linguaggi di alto livello.

Linguaggi di alto livello

I linguaggi di alto livello impiegano parole della lingua inglese corrente (ad esempio LIST, PRINT, OPEN) per esprimere singoli comandi che sostituiscono sequenze di decine o centinaia di istruzioni in linguaggio macchina. Questi comandi, generalmente inseriti da tastiera nella memoria di lavoro o in una memoria di massa del computer, vengono poi elaborati da un programma traduttore che li converte in istruzioni in linguaggio macchina.

Esistono due tipi di programmi traduttori: gli interpreti e i compilatori. L'interprete traduce i programmi durante l'esecuzione, per cui eventuali cicli ripercorsi più volte vengono ritradotti ogni volta. Questo comporta che l'esecuzione di un programma interpretato sia molto più lenta di quella dello stesso programma scritto in linguaggio macchina. Per contro, i compilatori trasformano in linguaggio macchina l'intero programma prima della sua esecuzione, per cui i programmi "girano" altrettanto rapidamente che se fossero redatti direttamente in tale forma.

Alla studiosa statunitense Grace Hopper è attribuita l'ideazione del primo linguaggio di programmazione orientato al commercio. Dopo aver programmato un computer sperimentale all'Università di Harvard, lavorò sui modelli UNIVAC I e II e mise a punto un linguaggio di programmazione di alto livello per uso commerciale chiamato FLOW-MATIC. Per facilitare l'impiego dei calcolatori nel campo della ricerca scientifica, l'IBM sviluppò un linguaggio adatto all'applicazione di formule matematiche complesse. Abbozzato nel 1954 e completato nel 1957, il FORTRAN (FORmula TRANslator) fu il primo linguaggio di alto livello a conoscere un'ampia diffusione.

Nel 1957, la Association for Computing Machinery si dispose a realizzare un linguaggio universale che correggesse alcuni dei difetti rilevati nel FORTRAN. Dopo un anno fu presentato l'ALGOL (ALGOrithmic Language), un altro linguaggio orientato alle applicazioni scientifiche. Ampiamente usato in Europa negli anni Sessanta e Settanta, l'ALGOL fu in seguito soppiantato da nuovi linguaggi, mentre il FORTRAN è tuttora utilizzato. Il COBOL (COmmon Business Oriented Language), ideato per applicazioni nei campi dell'amministrazione e del commercio, per l'organizzazione dei dati e la manipolazione dei file, trova oggi largo uso nel mondo degli affari.

Il linguaggio BASIC (Beginner's All-purpose Symbolic Instruction Code), destinato agli utenti non professionisti, fu sviluppato presso il Dartmouth College nei primi anni Sessanta. Divenne di uso pressoché universale con l'esplosione dei microcomputer degli anni Settanta e Ottanta. Ritenuto lento, inefficiente e poco elegante dai suoi detrattori, il BASIC è comunque semplice da imparare e di facile utilizzo. Il linguaggio conobbe una vasta e rapida diffusione anche grazie al fatto che molti dei primi microcalcolatori venivano venduti con il BASIC già installato nelle ROM. Segue un semplice esempio di programma in BASIC che consiste nell'esecuzioe della somma dei numeri 1 e 2 e nella visualizzazione del risultato (i numeri 10-40 sono numeri di linea):

Tra le centinaia di diversi linguaggi di programmazione, meritano di essere menzionati: il PASCAL, progettato in origine come strumento didattico e divenuto oggi uno dei più popolari linguaggi per microcomputer; il LOGO, creato per introdurre i bambini all'uso del computer; il C, adatto allo sviluppo di programmi per sistemi complessi, così come il suo derivato C++; il LISP e il PROLOG, molto usati negli studi sull'intelligenza artificiale.

Sviluppi futuri

Un evidente indirizzo nel perfezionamento dei computer è la microminiaturizzazione, vale a dire la tendenza a comprimere un numero sempre maggiore di elementi circuitali in uno spazio su chip sempre più ridotto. Sono in corso inoltre ricerche volte a velocizzare il funzionamento dei circuiti sfruttando la superconduttività, il fenomeno per cui la resistenza elettrica di alcuni metalli si riduce bruscamente quando la temperatura si approssima allo zero assoluto. Un'altra linea di sviluppo è quella dei computer di "quinta generazione", macchine in grado di risolvere problemi complessi che eventualmente richiedano un approccio "creativo" da parte del computer; l'obiettivo ideale è il raggiungimento di una vera e propria intelligenza artificiale. Una strada attivamente esplorata è quella dell'elaborazione parallela (parallel-processing), che consiste nell'impiego di diversi circuiti integrati per svolgere differenti funzioni contemporaneamente. Con questa modalità di lavoro potrebbe essere possibile riprodurre in qualche misura le complesse funzioni tipiche del pensiero umano. Un'altra tendenza in via di sviluppo è il collegamento dei computer in reti, che oggi coinvolge anche l'uso di satelliti artificiali. Altri studi sono rivolti alla messa a punto dei computer ottici, elaboratori dotati di un hardware che non elabora impulsi elettrici, ma ben più veloci impulsi luminosi.








Privacy




Articolo informazione


Hits: 2090
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024