Un computer, o anche elaboratore elettronico o elaboratore, è una macchina automatizzata programmabile in grado di eseguire sia complessi calcoli matematici (calcolatore) sia altri tipi di elaborazioni dati (elaboratore).[2][3]
Concepito come una macchina per automatizzare alcune capacità della mente umana, come ad esempio il calcolo e la capacità di memorizzazione potenziandone la portata e applicandole alla soluzione di particolari problemi scientifici e ingegneristici[4], solo a partire dalla seconda metà del XX secolo, evolve in macchina in grado di eseguire le elaborazioni dati più varie. Ci si riferisce comunemente al computer come ad un dispositivo elettronico e digitale, programmabile a scopo generico, costruito secondo il modello teorico-computazionale della cosiddetta macchina di Turing e la cosiddetta architettura di von Neumann, anche se oggi tuttavia il termine assume il significato più generico di sistema elettronico di elaborazione programmabile e non programmabile, includendo dunque una vasta gamma di tipologie di dispositivi: sebbene i computer programmabili a scopo generico siano oggi i più diffusi, esistono infatti in specifici ambiti di applicazione modelli di computer dedicati a vari campi e settori come automazione industriale, domotica, computer grafica.
Nel corso della storia, l’implementazione tecnologica di questa macchina si è modificata profondamente sia nei meccanismi di funzionamento (meccanici, elettromeccanici ed elettronici), che nelle modalità di rappresentazione dell’informazione (analogica e digitale) che in altre caratteristiche (architettura interna, programmabilità, ecc.). In questa forma e al pari della televisione, esso rappresenta il mezzo tecnologico simbolo che ha maggiormente modificato le abitudini umane dopo la seconda guerra mondiale: la sua invenzione ha contribuito alla nascita e allo sviluppo dell’informatica moderna, che ha segnato l’avvento della cosiddetta terza rivoluzione industriale e della società dell’informazione.
ARCHITETTURA
Un computer, come premesso, non è altro che l’implementazione fisica, pratica, di una macchina di Turing universale, secondo l’architettura fisica ideata da Von Neumann.
Per quanto riguarda l’architettura hardware sono diffuse le architetture dei processori basati su registri generali. A questo livello hardware e software viaggiano appaiati sullo stesso piano: le istruzioni elementari del processore (Instruction set) (salto, confronto, operazioni aritmetiche ecc.) sono definite in linguaggio macchina, ovvero codificate in sequenze numeriche di bit; i linguaggi di programmazione a medio ed alto livello, cioè più vicini o familiari al nostro linguaggio naturale, si ottengono come ulteriori codifiche (tabelle di associazioni tra i nomi delle istruzioni) a partire dal linguaggio macchina stesso. Così accade che un qualunque software applicativo abbia un suo codice oggetto o eseguibile espresso in linguaggio macchina ed un suo codice sorgente espresso in linguaggio ad alto livello.
Una terza possibilità è l’assembly; questo particolare linguaggio è una “trascrizione” delle istruzioni base del processore in un linguaggio intelligibile (solitamente nel formato istruzione indirizzo, o istruzione valore, o altri – vedasi opcode). È possibile (per esempio) integrare l’assembly in programmi in C (ma questo approccio non è sempre consigliabile anzi oggi è quasi del tutto abbandonato perché si preferisce scrivere programmi adattabili a più piattaforme, vedi voce “Portabilità”; linguaggio macchina ed assembly non sono mai portabili mentre esistono compilatori C multipiattaforma). Con l’evolversi dei sistemi operativi (eccezion fatta per l’hacking) i linguaggi a basso livello sono usati sempre meno, invece all’epoca del DOS e soprattutto degli home computer questo approccio veniva seguito spesso.
Un processore munito di memoria, dispositivi di input/output e bus di collegamento tra periferiche è dunque un “elaboratore” secondo la classica architettura generale di Von Neumann.
All’architettura hardware si sovrappone l’architettura software che comprendente il sistema operativo cioè il sistema generale di gestione o coordinazione delle risorse hardware del computer e dei dati in esso immagazzinati. Le istruzioni base del sistema operativo fanno parte del set di istruzioni fondamentali del processore e, di conseguenza, sono definite anch’esse in linguaggio macchina e gestite dall’Unità di Controllo del processore. Le istruzioni del sistema operativo a livello utente, eventualmente interfacciate graficamente, sono anche qui ottenute tramite una codifica ad alto livello delle istruzioni base, espresse in linguaggio macchina, di gestione (pilotaggio) delle periferiche stesse, mascherando così ancora una volta il complesso funzionamento interno del computer.
L’insieme di architettura hardware (quindi il processore) e sistema operativo costituiscono la cosiddetta piattaforma informatica del sistema essendo questi due elementi strettamente correlati. Al di sopra della piattaforma costituita da hardware e sistema operativo operano le applicazioni ovvero programmi che offrono un servizio all’utente appoggiandosi al sottostante sistema operativo.
Fonte Wikipedia: Computer – Wikipedia