Cosa è il computer? Il Computer si può definire una macchina

Transcript

Cosa è il computer? Il Computer si può definire una macchina
Cosa è il computer?
Il Computer si può definire una macchina elettronica statica programmabile,
strutturata attorno ad un microprocessore, in grado di eseguire calcoli ad altissima
velocità. Le applicazioni dei computer sono infinite ma, da un punto di vista
oggettivo, il computer è utile e applicabile in tutte quelle situazioni in cui esistono
problemi che possono essere tradotti in formule di tipo matematico.
Attualmente esistono tecnologie a livello sperimentale sia software che hardware, che
hanno lo scopo di superare questo limite (cioè la possibilità di affrontare solo
problemi convertibili e convertiti in formule matematiche) quali reti neuronali,
linguaggi di autoapprendimento, ecc...; attualmente sono tutte tecnologie in fase di
sviluppo, che si pensa offrano grandissime prospettive, ma che non sono ancora
applicabili né a livello commerciale né a livello industriale.
Gli elementi minimi costitutivi di un computer sono:
• microprocessore;
• memoria di tipo RAM;
• memoria di tipo EPROM;
• interfaccia per l'immissione dei dati (per esempio tastiera);
• interfaccia per l'output dati (per esempio monitor).
Le due interfacce comunemente non sono considerate parte del computer, ma
comunque senza di esse il funzionamento risulta impossibile; per quanto il
funzionamento in termini di elaborazione possa essere possibile, senza le interfacce
risulta impossibile ottenere i risultati del lavoro eseguito e immettere comandi al fine
di controllare il funzionamento della macchina. Un esempio completo di computer è
una normale calcolatrice di tipo scientifico.
I primi calcolatori, come il MARK I e l'ENIAC, realizzati fra il 1944 ed il 1946,
usavano il sistema di numerazione decimale. Fu il fisico matematico ungherese
Johann von Neumann a suggerire, nel 1946, l'uso del sistema binario. Da allora,
questo sistema di numerazione si è legato ai calcolatori in maniera indissolubile, tanto
che oggi esso è impiegato da qualsiasi macchina per calcolare, dalla più semplice
calcolatrice tascabile fino al più potente supercalcolatore.
Il sistema binario impiega due soli simboli (0 ed 1), mentre, come è noto, il sistema
decimale ne usa dieci. Ciò rende assai più agevole rappresentare i numeri nel
calcolatore. Ogni numero (ed ogni lettera o simbolo grafico) può quindi essere
rappresentato da una sequenza di O ed 1, un po' come accade con il codice "Morse"
che utilizza il punto e la linea, corrispondenti ad un impulso breve o lungo.
In un calcolatore quindi tutti i dati (numeri, caratteri alfabetici, istruzioni) sono
rappresentati con un codice binario.
Bit = è una parola inglese, che letteralmente significa "pezzettino"; nel linguaggio dei
calcolatori, essa viene usata come contrazione di “binary digit” (cifra binaria),
corrisponde quindi ad una informazione (o cifra) binaria elementare (O oppure 1)
Le sequenze di bit, usate nei calcolatori, prendono il nome di "byte" e di "parole".
Byte = è un gruppo di 8 bit. Esistono 256 possibili combinazioni di bit per scrivere 1
byte.
"Parole" = insieme di bytes ; hanno una lunghezza variabile da calcolatore a
calcolatore. Nei ''calcolatori personali" più piccoli, esse possono essere lunghe un
solo byte (cioè 8 bit); nei calcolatori più potenti nanno una lunghezza maggiore, per
esempio: 2 byte (16 bit), 4 byte (32 bit) o 8 byte (64 bit).
Utilizzando quindi parole più lunghe si possono rappresentare molti più numeri, ad
esempio:
con 1 byte (8 bit) esistono 256 (2 all'8°) conbinazioni di bit possibili
con 2 byte (16 bit) esistono 65.536 (2 alla 16°) conbinazioni di bit possibili
con 4 byte (32 bit) esistono 4.294.967.296 (2 alla 32°) conbinazioni di bit possibili.
ecc.
Possiamo dunque ritenere che il "byte" serva per rappresentare un simbolo
alfanumerico mentre la "parola" venga usata per la rappresentazione dei numeri
utilizzati per il calcolo vero e proprio .
Il codice, oggi impiegato quasi universalmente per rappresentare i caratteri ed i
simboli normalmente presenti sulla tastiera di un PC (anche "estesa"), è il codice
ASCII (una sigla che sta per "American Standard Code for Information Interchange"
= Codice americano standard per lo scambio di informazioni). Esso definisce 128
caratteri diversi fra i quali: le lettere dell'alfabeto sia maiuscole che minuscole, le
cifre numeriche , i segni di interpunzione ecc.) associandoli ai numeri binari da 0 a
+127 (il n&deg= 128 è adeguato ad esprimere tutti i caratteri ed i simboli delle usuali
tastiere).
Per il calcolatore elettronico il fatto di dover gestire un codice così "elefantiaco" non
è un problema perché la velocità con cui riesce a "muovere" gli impulsi elettrici al
suo interno è eccezionale.
La velocità di elaborazione del microprocessore (il "cuore" della macchina che
esegue operazioni e distribuisce gli impulsi elettrici agli altri componenti ) viene
normalmente chiamata "velocita di Clock" , espressa in MHz (MegaHertz) , oggi
anche in GHz (Gigahertz), e si riferisce alla frequenza con cui gli impulsi elettrici
(ovvero i bit) vengono emessi dall'"orologio temporizzatore" interno, cioè
teoricamente la velocità massima con cui possono essere gestiti.
Come risulta evidente è necessario utilizzare dispositivi di memoria, per la
registrazione permanente dei dati, estremamente capienti, in grado di immagazzinare
enormi sequenze di bit .
Di solito si tratta di dispositivi di tipo magnetico, ottico o magneto-ottico (dischetti,
dischi rigidi , CD ecc.).
I dispositivi magnetici si basano sull'orientamento di microscopiche "schegge" di
ossido di ferro magnetizzato (cioè microscopiche calamite) ordinate sulla superficie ,
cui si fanno corrispondere le due cifre binarie fondamentali; il funzionamento dei CD
invece è di tipo ottico, quindi del tutto diverso, ed utilizza un piccolo laser.
Ogni cella elementare di memoria potrà allora contenere, dal punto di vista logico,
solamente uno zero o un uno, cioè una cifra binaria.
Per esprimere quantitativamente la capacità della memoria centrale, ma anche delle
memorie ausiliarie, si usano i multipli del bit e soprattutto del byte. l più comuni
sono:
1kilobyte = 1 kb = 1024 bytes
1Megabyte= 1 Mb = 1024 Kb = 1.048.576 bytes
1Gigabyte = 1 Gb = 1024 Mb = 1.073.741.824 bytes
1Terabyte = 1 Tb = 1024 Gb = 1.099.511.627.780 bytes
Il computer non conosce la soluzione di nessun problema, né di fisica, né di altra
natura, fino a quando non sia stato opportunamente programmato per tale scopo
specifico.
Programmare il computer significa, in primo luogo, individuare il metodo di
soluzione (o algoritmo), quindi specificarlo formalmente secondo una tecnica
prefissata, ed infine tradurlo nel linguaggio della macchina.
Dunque, il programma è solamente una traduzione della soluzione in un particolare
linguaggio. La soluzione del problema e la sua formalizzazione (scrittura secondo
regole formali) spettano evidentemente all'uomo.
Uno dei metodi più immediati per scrivere algoritmi consiste nell'utilizzare i
cosiddetti diagrammi a blocchi (flow-chart) che ne forniscono una efficace
rappresentazione grafica facilmente interpretabile.
Per le motivazioni ora esposte, e per quanto si è detto riguardo al linguaggio
macchina, è rapidamente entrato nella mentalità comune il concetto di codifica, la
quale consiste nell'uso di un codice mnemonico al posto del codice binario. Un
linguaggio di questo tipo, detto "linguaggio assemblatore", rimane comunque
orientato alla macchina pur risultando maggiormente comprensibile agli operatori
umani.
Un linguaggio "più umano", sia pure adattato e semplificato per l'uso da parte del
computer, prenderà il nome del linguaggio orientato al problema, altrimenti detto
linguaggio di alto livello.
Un linguaggio di alto livello verrà progettato in modo specifico per essere chiaro
all'operatore, cioè per permettergli di scrivere materialmente le istruzioni che si
intende impartire al computer utilizzando sigle, abbreviazioni o contrazioni di parole
di uso comune, molto più facili da usare e ricordare.
I linguaggi di alto livello più famosi sono :
BASIC - "Beginners All purpose Symbolic Instruction Code" ; sviluppato a metà
degli anni '60 , semplice sia a livello di apprendimento che di uso, adatto a risolvere
problemi scientifici e commerciali.
VISUAL BASIC - Fa parte di una nuova generazione di linguaggi che consentono di
programmare non solo scrivendo righe di istruzioni in codice, ma in modo più
intuitivo, posizionando e disegnando elementi grafici col mouse; rispetto ai linguaggi
tradizionali quelli "visuali" permettono di ottenere risultati esteticamente migliori in
tempi più brevi.
C - creato nei primi anni '70, ha la particolarità di poter controllare il calcolatore
anche nelle componenti più interne ; attualmente molto utilizzato per lo sviluppo di
software tecnici e scientifici.
C++ - Estensione del linguaggio C sviluppata negli anni '80. E' un linguaggio"
orientato agli oggetti" (object oriented) che rende possibile un tipo di
programmazione concettualmente differente dai precedenti. Attualmente è molto
utilizzato nell'automazione industriale.
COBOL - "Common Business Oriented Language" ; è uno dei primi linguaggi di
programmazione, risale agli anni '50 ed è adatto a trattare problemi di tipo
commerciale.
FORTRAN - "FORmula TRANslation", indicato nella trattazione di problemi
scientifici ed ingegneristici.
PASCAL - deve il proprio nome al matematico Blaise Pascal (1623-1662), fu
sviluppato da Wirth e dalla sua equipe presso l'università di Zurigo. Grazie alla sua
flessibilità e semplicità trova applicazione nella scuola per scopi didattici.
DELPHI - Sviluppato negli anni '90 può essere considerato l'evoluzione del PASCAL
nell'ambito dei "linguaggi visuali"
PROLOG - "PROgramming in LOGic" ; utilizza una programmazione logica
largamente impiegata nell'ambitto dello studio della cosiddetta "intelligenza
artificiale"; molto complesso.
HTML - "HyperText Markup Language", pur non essendo un vero e proprio
linguaggio di programmazione è molto utilizzato per formattare i documenti da
immettere in rete.
JAVA - linguaggio ad oggetti, sviluppato nel 1991 dalla Sun Microsystem
(specializzata per la realizzazione di macchine UNIX). È stato creato inizialmente per
realizzare software efficienti ed esportabili su una vasta gamma di elettrodomestici.
Solo nel 1994 questo linguaggio ha riscontrato un interesse sia commerciale sia
nell'ambito della programmazione, grazie a HotJava, il Browser “www" prodotto
dalla Sun. Quello che distingue Java dagli altri linguaggi di programmazione è la sua
portabilità nelle diverse piattaforme (computer) e nei diversi sistemi operativi,
(Windows, MacOS, Solaris ecc). Infatti è trasportabile su altri sistemi operativi non
solo il file sorgente (con le librerie di classi fondamentali) ma addirittura il file
binario! In altri termini il file sorgente, una volta compilato su un sistema Windows,
e quindi eseguibile su processore Intel e compatibili, è eseguibile anche su altre
architetture. Per esempio,l'applicazione in Java nei PC, può essere eseguita anche nei
Macintosh (processori PowerPC). Se tutti i programmi fossero scritti in Java, anziché
in altri linguaggi, non ci sarebbero più problemi di compatibilità tra le diverse
piattaforme.