ricerche |
Computer (elaboratore) Dispositivo elettronico in grado di ricevere una sequenza di istruzioni (programma) ed eseguirla svolgendo calcoli su dati numerici o elaborando e correlando altri tipi di informazione. Il mondo attuale delle alte tecnologie non sarebbe mai nato senza lo sviluppo dei computer. Computer di diversi tipi e dimensioni vengono usati in ogni campo della vita sociale per la memorizzazione e l'elaborazione di dati: dalle informazioni segrete degli organi di governo alle transazioni bancarie, della didattica alla contabilità domestica privata. I computer hanno aperto una nuova era nella produzione industriale con lo sviluppo delle tecniche di automazione e hanno permesso lo sviluppo dei moderni sistemi di comunicazione. Sono oggi strumenti indispensabili in ogni campo della ricerca e delle applicazioni tecnologiche, dalla definizione di modelli dell'universo alle previsioni meteorologiche, e il loro impegno ha aperto nuovi campi d'indagine su problemi che, per complessità di calcolo o altri motivi sarebbero stati assolutamente irrisolvibili. I servizi di database e le reti di computer rendendo disponibile a molti utenti una grande varietà di fonti informative. Purtroppo, le stesse tecniche avanzate rendono a volte possibile la violazione della privacy o di fonti di informazione riservate, tanto che la "pirateria" informatica è divenuta uno dei maggiori rischi che la società deve affrontare per poter godere i vantaggi di questa moderna tecnologia.
Oggi sono in uso due tipi fondamentali di computer, quelli analogici e quelli digitali, benché il termine computer sia spesso usato per indicare solo il secondo tipo. I computer analogici sfruttano le analogie matematiche tra le relazioni che governano fenomeni fisici diversi per simulare una varietà di situazioni problematiche con circuiti elettronici o idraulici. I computer digitali, invece, risolvono i problemi eseguendo calcoli e altre manipolazioni su dati che vengono espressi in forma di combinazioni binarie, operando bit per bit.
Sistemi che contengono elementi di entrambi i tipi (analogici e digitali) sono detti ibridi. Essi trovano impiego soprattutto per lo studio di problemi che coinvolgono un alto numero di equazioni differenziali. I dati in forma analogica possono poi essere acquisti da un computer digitale attraverso un convertitore analogico-digitale; anche la conversione opposta è possibile per mezzo di un convertitore digitale-analogico.
I computer analogici sono dispositivi elettronici o idraulici progettati per gestire segnali di ingresso costituiti da valori di particolari grandezze fisiche continue, come tensioni elettriche o pressioni di fluidi, e non da dati numerici. Il più semplice dispositivo per il calcolo analogico è il regolo calcolatore, simile a un righello, con una parte scorrevole; sulla parte fissa e su quella mobile sono tracciate scale logaritmiche che permettono di eseguire rapidamente moltiplicazioni, divisioni e altre operazioni. In un tipico calcolatore elettronico analogico, gli ingressi sono rappresentati da tensioni, che possono essere sommate o moltiplicate tra loro per mezzo di elementi circuitali appositamente progettati. I segnali risultanti, variabili con continuità, vengono visualizzati o convertiti in altra forma.
Qualsiasi elaborazione di un computer digitale è basata sulla capacità di distinguere tra due stati di funzionamento diversi. Ciascuno dei microscopici circuiti di un computer, infatti, può funzionare solo in due diversi stati, che la macchina è in grado di riconoscere: essi vengono indicati come "on" e "off", o come livello alto e livello basso (con riferimento ai valori di tensione) o, con simbologia numerica, come 1 e 0. La velocità con cui il computer può eseguire questo semplice riconoscimento, però, fa di esso una meraviglia della moderna tecnologia. La rapidità di un computer viene espressa in megahertz (milioni di cicli al secondo), riferendosi alla frequenza del suo segnale di sincronizzazione (Clock). Un computer con una frequenza di clock di 50 MHz, valore abbastanza comune per un microcomputer, può eseguire 50 milioni di operazioni di clock intorno ai 100 MHz, mentre i supercomputer usati per la ricerca e per le applicazione militari raggiungono velocità di miliardi di cicli al secondo.
La velocità e la potenza di calcolo dei computer digitali è ulteriormente incrementata dal crescere della quantità di dati trattata in ogni ciclo. Se un computer verificasse lo stato di un solo circuito elementare a ogni ciclo, esso potrebbe scegliere solo tra due alternative; lo stato ON rappresenterebbe un'operazione o un numero, lo stato OFF un'altra operazione o numero. Se invece il computer può considerare contemporaneamente più circuiti elementari che complessivamente codificano un'informazione, aumenta il numero di operazioni che esso può riconoscere a ogni ciclo. Ad esempio, un computer che può leggere nello stesso momento lo stato di due elementi, può distinguere fra quattro numeri (00, 01, 10, 11) o eseguire, a ogni ciclo, una tra quattro possibili istruzioni (codificate con le quattro possibili combinazioni degli stati dei due elementi: OFF-OFF, OFF-ON, ON-OFF e ON-ON).
Storia
La prima macchina per addizioni, lontano precursore del computer digitale, fu inventata nel 1642 dal filosofo francese Blaise Pascal. Essa impiegava una serie di ruote a dieci denti ciascuno dei quali rappresentava una cifra tra 0 e 9. Le ruote del giusto numero di denti. Intorno al 1670 il filosofo e matematico tedesco Gottfried Wilhelm Leibniz perfezionò tale macchina, ottenendone una in grado di eseguire anche moltiplicazioni.
L'inventore francese Joseph-Marie Jacquard, progettando un telaio automatico, usò sottili tavolette di legno perforate per controllare la tessitura di motivi complicati. Negli anni Ottanta dall'Ottocento lo studioso statunitense di statistica Herman Hollerith sviluppò l'idea di usare schede perforate, simili alle tavolette di Jacquard, per elaborare dati. Con un sistema che faceva passare schede perforate sopra contatti elettrici, egli riuscì a compilare elaborazioni statistiche per il censimento degli Stati Uniti del 1890.
Sempre nel XIX secolo, il matematico e inventore britannico Charles Babbage elaborò il principio di funzionamento dei moderni computer digitali e concepì numerose macchine, tra le quali la macchina delle differenze e la macchina analitica, progettate per trattare problemi matematici complessi. Molti storici considerano Babbage e la sua collega, Augusta Ada Byron (1815-l852), sorella del poeta George Gordon Byron, i veri inventori del moderno computer digitale. La tecnologia del tempo non era in grado di tradurre i loro progetti in dispositivi d'uso pratico, tuttavia la macchina analitica possedeva molte delle prestazioni di un moderno calcolatore: aveva un flusso di dati in ingresso costituito da una pila di schede perforate, un "magazzino" per conservare i dati, una "fabbrica" per svolgere le operazioni aritmetiche, e una stampante che produceva una registrazione permanente.
La costruzione 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 troppo difficili da risolvere per altra via. Durante le due guerre mondiali, calcolatori analogici meccanici, e più tardi elettrici, furono usati per prevedere le traiettorie dei siluri sui sommergibili e come dispositivi di puntamento per l'artiglieria aerea.
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, che viene considerata il primo computer digitale interamente elettronico. Verso il dicembre del 1943, Colossus, che conteneva 1500 tubi a vuoto, era operativo; esso fu usato dal gruppo guidato da Alan Turing per interpretare i messaggi radio cifrati dei tedeschi. Indipendentemente da questo, 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 allo sviluppo di ENIAC (Electronic Numerical Integrator and Computer), un computer che venne realizzato nel 1945: conteneva 18.000 tubi a vuoto e aveva una velocità operativa di molte centinaia di moltiplicazioni al minuto, ma il suo programma era cablato negli stessi circuiti e doveva essere modificato manualmente. In seguito fu realizzato un nuovo modello dotato di un "magazzino" per i programmi, basato su concetti elaborati dal matematico ungaro-statunitense John von Neumann. Le istruzioni venivano registrate nella cosiddetta "memoria", e ciò liberava il computer dalle limitazioni di velocità dovute alla lettura del nastro perforato durante l'esecuzione dei programmi e permetteva di risolvere problemi diversi senza intervenire 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 tubi a vuoto. A causa del minor impiego di potenza e della maggior durata dei transistor, questa sola innovazione fu responsabile della nascita di macchine ben più evolute, dette "computer di seconda generazione". I componenti divennero assai più economici.
Verso la fine degli anni Sessanta iniziò la produzione dei circuiti integrati (IC); questa tecnologia permette di realizzare numerosi transistor su un unico substrato di silicio, sul quale sono posti anche tutti i collegamenti tra essi. Il risultato fu un'ulteriore riduzione del prezzo, delle dimensioni e della frequenza dei guasti nei computer. Il microprocessore venne realizzato verso la 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 fino a 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 è detto byte, e ciascun byte può assumere 256 possibili conurazioni di stati ON e OFF (1 o 0). Ciascuna conurazione può rappresentare un'istruzione, o una parte di essa, o un tipo di dato, come un numero, un carattere o un simbolo grafico. La combinazione 11010010, ad esempio, può rappresentare un dato numerico binario, oppure un'istruzione.
Lo sviluppo di computer che possono trattare in blocco combinazioni di 16, 32 e 64 bit ha aumentato la velocità d'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. Entrambi questi elementi (bit trattati in un passo e dimensioni del set di istruzioni) sono in continua crescita nei moderni elaboratori.
Gli attuali calcolatori digitali, benché siano tutti concettualmente simili, possono essere classificati in diverse categorie in base al costo e alle prestazioni: i personal computer o microcomputer sono macchine di costo relativamente ridotto e 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 prestazioni grafiche e di comunicazione avanzate, 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 simili (i più grandi e veloci tra questi sono detti supercomputer).
In un computer digitale possono essere distinti cinque elementi:
Una unità centrale di elaborazione(CPU, Central Processing Unit);
I dispositivi di ingresso;
I dispositivi di memoria;
I dispositivi di uscita;
Una rete di comunicazione, detta bus, che collega tutti gli elementi del sistema e permette a questo di comunicare con l'esterno.
Unità centrale (CPU)
L'unità centrale di elaborazione può essere realizzata con un solo integrato o con più integrati collegati, e svolge operazioni aritmetiche e logiche, oltre a temporizzare e comandare 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. Ne sono derivati computer più piccoli e una riduzione della circuiteria di supporto. I microprocessori sono presenti nella maggior parte degli attuali personal.
La maggior parte delle CPU e dei microprocessori è composta da quattro sezioni:
Un'unità aritmetico/logica (ALU, Arithmetic/Logic Unit);
Alcuni registri;
Una sezione di controllo;
Un bus interno.
L'ALU è la sede delle capacità di calcolo, e 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 varie parti del processore tra loro e ai terminali esterni. Una CPU ha tre diversi tipi di bus:
Un bus di controllo, costituito da linee che ricevono segnali dall'esterno e da altre che trasportano all'esterno i segnali di controllo dalla CPU;
Il bus degli indirizzi, unidirezionale, che trasporta i segnali per la selezione delle locazioni di memoria;
Il bus dei dati, bidirezionale, per portare alla CPU i dati letti in memoria e per portare alla memoria nuovi dati.
Questi dispositivi permettono all'utente di inviare alla CPU dati, comandi e programmi. Il più comune tra essi è la tastiera, simile a quella di una macchina da scrivere, che trasforma ciascun carattere battuto in una combinazione di bit riconoscibile dal computer. Altri dispositivi di ingresso sono le penne ottiche, che trasferiscono al computer informazioni tramite tavolette grafiche; i joystick e i mouse, che comandano il movimento di un cursore sullo schermo mediante un analogo effettivo movimento del dispositivo; gli scanner ottici, che "leggono" parole e simboli su una ina stampata e li "traducono" in sequenze di bit elaborabili o memorizzabili da un computer; infine, i riconoscitori vocali, che traducono in segnali digitali le parole pronunciate dall'operatore. 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 sia internamente (nella memoria di lavoro), sia esternamente (nelle memorie di massa). 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 anche più di un milione di circuiti elementari a transistor il cui stato (binario) può essere imposto mediante comandi elettrici. In assenza di comandi, le RAM dette "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 superano i due millisecondi circa).
Le memorie ROM (Read-Only Memory, memoria di sola lettura) contengono circuiti elementari il cui stato non può essere variato con comandi esterni e viene fissato in fase di costruzione; su queste memorie, non cancellabili, sono raccolti comandi, dati e programmi necessari al corretto funzionamento del computer. Le RAM, dunque, possono essere scritte, cancellate e riscritte senza limitazioni (e si cancellano spegnendo il computer), mentre il contenuto delle ROM è permanente e può solo essere letto. Entrambe le memorie sono collegate alla CPU.
Le memorie di massa possono far parte del computer come unità fisica, ma non risiedono sulla sua scheda principale. Questi dispositivi 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. I tipi più comuni di dispositivi esterni di memoria sono i floppy disk e gli hard disk, mentre la maggior parte dei grandi sistemi di calcolo usa unità di memoria con banchi di nastri magnetici. I floppy disk possono contenere da qualche centinaio di migliaia a oltre un milione di byte, secondo il sistema che li impegna. Gli hard disk (dischi "rigidi" o "fissi") non possono essere estratti dal loro alloggiamento nel circuito che li pilota e che contiene i dispositivi di lettura e scrittura dei dati sulle superfici magnetizzate. Essi possono contenere da parecchi milioni a oltre un miliardo di byte. I CD-ROM, che impiegano tecnologie simili a quelle dei compact disc (CD) per riproduzioni audio, permettendo di raggiungere capacità di memoria di diversi miliardi di byte.
Questi dispositivi rendono visibili all'utente i risultati dei calcoli e delle elaborazioni del computer. Il più comune tra essi è l'unità video (Video Display Unit, VDU), simile a uno schermo televisivo, che quello di un comune televisore, ma i piccoli computer portatili usano visualizzatori a cristalli liquidi citiamo le stampanti e i modem. Questi ultimi permettono di collegare due o più computer operando una modulazione sui segnali digitali in modo che i dati possano essere trasmessi attraverso una rete di telecomunicazioni.
I diversi tipi di periferiche, disk drive, stampanti, reti di comunicazione e così via, gestiscono e memorizzano i dati in forme diverse da quelle usate dall'elaboratore. I sistemi operativi interni, registrati in una ROM, sono stati messi a punto con lo scopo primario di coordinare e adattare i flussi di dati provenienti da sorgenti diverse, quali i disk drive o i coprocessori (integrati con capacità di elaborazione, in grado di operare con particolari funzioni 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 dato programma.
Un programma è una sequenza di istruzioni che indicano all'hardware di un calcolatore le operazioni da eseguire elaborando i dati. I programmi possono essere fissati dalla stessa struttura del circuito (hardware), o possono esistere indipendentemente da essa, in una forma detta software. La prima soluzione è limitata a computer specializzati per un 'unica funzione, o "dedicati", di cui sono esempi comuni quelli presenti nelle calcolatrici tascabili, negli orologi da polso, nelle automobili, o anche nei forni a microonde. Un computer per applicazioni generali, invece, contiene anche alcuni programmi o istruzioni non modificabili, rispettivamente nelle ROM e nel processore, ma dipende da programmi esterni per lo svolgimento di tutte le funzioni applicative. Una volta programmato, un computer può compiere solo le funzioni, complesse o elementari, che il software che lo controlla in quel momento gli permette. Il termine software, in senso lato, comprende una vasta gamma di programmi applicativi (sequenze di istruzioni che permettono al computer di dedicarsi ad attività assai diversificate).
Un computer deve ricevere le istruzioni in un linguaggio di programmazione che esso possa comprendere; in altre parole, a ogni comando deve corrispondere una specifica combinazione di livelli binari. 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 numerosi tipi diversi di linguaggi di programmazione, alcuni orientati in modo specifico a funzioni ben definite, altri con l'obbiettivo della facilità di uso (approccio "amichevole", o "user-friendly").
E' il linguaggio direttamente comprensibile al computer, costituito da combinazioni di stati binari, e perciò non immediatamente significativo per l'utente umano e difficile da memorizzare. Il programmatore deve inserire ciascun comando e dato in forma binaria, perciò 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 il programma per svolgere un ben preciso compito, ma è un'operazione tanto noiosa e lunga che raramente questo vantaggio giustifica l'impiego di giorni o settimane per la scrittura di un programma in questa forma.
Un metodo ideato dai programmatori per abbreviare e semplificare la scrittura di programmi è lo sviluppo di linguaggi assembly, che consiste nell'assegnare a ciascun comando in linguaggio macchina un breve codice, in genere di tre lettere, che richiami il significato del comando stesso (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 in un tempo assai più breve che lavorando su codici binari. Nei linguaggi assembly, ogni codice mnemonico e ogni operando espresso in forma simbolica corrisponde a un'istruzione in un 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 un linguaggio macchina, detta codice oggetto, e all'esecuzione del programma.
Un linguaggio assembly, però, può essere usato con un solo tipo di CPU o microprocessore; in questo modo i programmatori che hanno imparato a programmare un computer devono apprendere un diverso approccio ogni volta che si apprestano a lavorare su una nuova macchina. Per questo motivo si è reso necessario lo sviluppo di un nuovo linguaggio in cui un'espressione simbolica possa rappresentare una sequenza anche di molte istruzioni in linguaggio macchina, e di modo che permetta allo stesso programma di "girare" su macchine di diverso tipo. Questa necessità ha portato alla diffusione dei linguaggi di alto livello.
I linguaggi di alto livello impiegano spesso parole della inglese corrente, ad esempio LIST, PRINT, OPEN, e così via, come comandi singoli che possono sostituire una sequenza di decine o centinaia di istruzioni in linguaggio macchina.
I programmi traduttori sono di due tipi: interpreti e compilatori. Con un interprete i programmi vengono tradotti durante l'esecuzione, perciò eventuali cicli che vengono ripercorsi più volte interpretato è molto più lenta di quanto non sarebbe se esso fosse scritto in linguaggio macchina. Per contro, i compilatori trasformano in un linguaggio macchina l'intero programma prima dell'esecuzione, perciò i programmi "girano" altrettanto rapidamente che se fossero redatti direttamente in tale forma.
Alla studiosa statunitense Grace Hopper è attribuita la realizzazione 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'uso dei calcolatori nelle applicazioni scientifiche, l'IBM sviluppò un linguaggio che semplificava le attività che comportavano formule matematiche complesse. Abbozzato nel 1954 e completato nel 1957, il FORTRAN (formula translator) fu il primo linguaggio di alto livello e vasta applicabilità ad avere un largo uso.
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, esso fu in seguito soppiantato da linguaggi più recenti, mentre il FORTRAN viene ancora usato, a causa degli enormi investimenti, in programmi attuali. Il COBOL (common business oriented language), un linguaggio orientato all'amministrazione e al commercio, fu ottimizzato per l'organizzazione dei dati e la manipolazione dei file, e trova largo uso oggi nel mondo degli affari.
BASIC (beginner's all-purpose simbolic instruction code), destinato agli utenti non professionali di computer, 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. Tacciato di essere lento, inefficiente e poco elegante dai suoi detrattori, il BASIC è tuttavia semplice da imparare e di facile utilizzo, e poiché molti dei primi microcalcolatori venivano venduti con il BASIC già istallato nelle ROM, il linguaggio ebbe rapidamente una vasta diffusione. Un semplicissimo esempio di programma di BASIC considera l'addizione dei numeri 1 e 2 e la visualizzazione del risultato. La sua scrittura è la seguente (i numeri 10-40 sono numeri di linea):
20 B = 2
30 C = A + B
40 PRINT C
Benché esistano centinaia di diversi linguaggi di programmazione e di loro varianti, alcuni meritano particolarmente di essere menzionati: il PASCAL, progettato in origine come strumento didattico, che è divenuto oggi uno dei più popolari linguaggi per microcomputer; il LOGO che venne creato per introdurre i bambini all'uso del computer; il C, un linguaggio dei Bell Laboratories progettato negli anni Settanta, che trova moltissime applicazioni nello sviluppo di programmi per sistemi complessi, così come il suo derivato C++; il LISP e il PROLOG che sono molti usati negli studi sull'intelligenza artificiale.
Un evidente indirizzo nel perfezionamento dei computer è la microminiaturizzazione, cioè lo sforzo di comprimere un sempre maggior numero di elementi circuitali in uno spazio su chip sempre più ridotto. ½ sono anche ricerche per 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", che tende a realizzare macchine in grado di risolvere problemi complessi che possano eventualmente richiedere un approccio "creativo"; l'obiettivo ideale è il raggiungimento di una vera intelligenza artificiale. Una strada attivamente esplorata è l'elaborazione parallela (parallel-processing), che impiega diversi integrati per svolgere differenti funzioni contemporaneamente. Questa modalità di lavoro può forse replicare, in qualche misura, le funzioni per mezzo di retroazioni, approssimazioni e valutazioni complesse 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. ½ è anche un notevole concorso di ricerche sulle possibilità dei computer "ottici ", cioè dotati di un hardware che non elabori impulsi elettrici, ma ben più veloci impulsi luminosi.
Privacy
|
© ePerTutti.com : tutti i diritti riservati
:::::
Condizioni Generali - Invia - Contatta