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°= 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.