La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Capitolo I. Calcolatore: teoria e storia della macchina "simulatrice"

Presentazioni simili


Presentazione sul tema: "Capitolo I. Calcolatore: teoria e storia della macchina "simulatrice""— Transcript della presentazione:

1 Capitolo I. Calcolatore: teoria e storia della macchina "simulatrice"
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

2 Rappresentazione analogica e digitale
Analogico Digitale Rappresentazione per analogia con altre grandezze fisiche Può adottare una numerazione anche binaria per la rappresentazione Difficile rimuovere gli effetti di rumore Semplice rimuovere il rumore della rappresentazione Nel caso di uso discretizzato perde la sua maggiore aderenza al fenomeno rappresentato È pensata per essere usata in un contesto discreto Vinile, orologi a lancette ecc. CD, orologi digitali, ecc. Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

3 La rappresentazione digitale dell’informazione
La codifica è una rappresentazione dell’informazione Un codice estremamente preciso è quello che usa i numeri naturali Una codifica si dice digitale quando si usano solo due cifre, 0 e 1 Digit (inglese) = cifra; numerique (francese)= digitale Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

4 La numerazione binaria
È possibile rappresentare i numeri e le loro operazioni adottando la numerazione binaria. La numerazione binaria è un calcolo che fa uso solo di due cifre, 0 e 1, invece delle dieci che si usano nella numerazione decimale, mantenendo però sempre il concetto di numerazione posizionale Questo metodo permette di maneggiare i numeri usando una notazione compatibile con la rappresentazione digitale permessa dall’elettronica che comprende solo due tipi di segnali Aperto o Chiuso riferito ai circuiti elettronici Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

5 La numerazione posizionale
Che cosa vuol dire in decimale il numero 124? (100x4)+(101x2)+(102x1) = = 124 Vale lo stesso per i numeri in formato binario, solo che la base è 2, invece di 10, e quindi si avranno 2 sole cifre invece di 10. A ogni posizione corrisponderà una potenza di 2 invece che di 10, come si può vedere nello schema qui sotto. 28 27 26 25 24 23 22 21 20 Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

6 L’unità di misura del mondo digitale: il bit
Il bit (binary digit): unità di misura degli strumenti digitali di codifica 1 bit: la quantità di informazione fornita dalla scelta tra due diverse alternative 1 bit: unità minima dell’informazione digitale, è una singola cifra, 0 o 1 Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

7 Perché la numerazione binaria e il bit sono tanto importanti?
Perché il computer capisce solo successioni di bit, ognuno dei quali può essere rappresentato da 0 e 1. I circuiti elettronici (come lo scaldabagno o la lampadina) possono essere solo aperti o chiusi Quindi le tecniche di numerazione binaria e tutti i codici che utilizzano solo due elementi sono fondamentali per interagire e “comunicare” correttamente con il computer Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

8 Il byte Ogni bit può avere due possibilità: 0 o 1 1 byte = 8 bit
1 byte può codificare 28 diverse possibilità: 256 combinazioni diverse di 0 e 1 Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

9 Mettiamo ordine tra le grandezze
Grandezza Valore Circa 1KiloByte (KB) 210 = 1024 Byte 103 1 Mega (MB) 220= Byte 106 1 Giga (GB) 230= Byte (1024 MB) 109 1 Tera (TB) 240= 1024 GB 1012 1 Peta (PB) 250= 1024 TB 1015 Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

10 Quali variabili aumentano il contenuto informativo di un messaggio?
Il numero di caratteri disponibili per scrivere il messaggio ha impatto sulla quantità di informazione che trasmette: più caratteri significa più possibilità, quindi maggiore contenuto informativo (per esempio, la differenza tra notazione decimale e binaria) La lunghezza del messaggio, ovviamente, aumenta il suo contenuto informativo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

11 Più alternative, più informazione
Che cosa accade se l’informazione contiene una serie di caratteri e non solo una scelta tra due? Sarà ancora possibile “codificarla” attraverso queste due cifre, ma sarà necessaria una loro successione Maggiore è il numero di possibilità tra le quali scegliere, maggiore sarà la quantità di informazione da impiegare per trasmettere il contenuto informativo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

12 Il codice ASCII È una tabella che associa un numero a ogni segno usato nell’alfabeto latino, ai principali segni di interpunzione e ad alcuni caratteri speciali Il codice decimale va da 0 a 127, quello binario da 0 a (7 bit) Oltre al codice ASCII standard o stretto, esistono anche vari codici “estesi” a 256 caratteri (8 bit) Il più importante dei codici estesi si chiama “ISO Latin 1”, ma non è essere veramente universale Attualmente si sta lavorando alla costruzione di un nuovo codice UNICODE, una codifica a 16 bit che permette di codificare fino a caratteri. Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

13 ASCII BASE Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

14 ISO LATIN 1 ASCII a 8 bit Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

15 Macchina di Turing e macchina di von Neumann
Il computer tra hardware e software Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

16 Alan Turing Nasce nel 1912 a Londra
Nel 1936 ottiene il famoso risultato di logica noto come tesi di Church-Turing, mentre si trova al King’s College di Cambridge Nel biennio autunno autunno 1938 studia presso l’università statunitense di Princeton con Alonzo Church. Qui incontra, tra gli altri, von Neumann, che si interessa al suo lavoro e gli chiede di restare in America come suo assistente, ma Turing si rifiuta Durante gli anni della II Guerra Mondiale si occupa della decodifica di Enigma, la macchina elettromeccanica dei Tedeschi per trasmettere messaggi in codice Dal 1945 lavora presso il NPL al progetto per costruire un calcolatore a programma memorizzato, l’ACE Tra il 1947 e il 1948 trascorre un anno sabbatico a Cambridge Dal ’48 al ’54 si trasferisce a Manchester e si occupa del MArk II, un calcolatore progettato da F. Williams Muore suicida nel 1954 a Manchester Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

17 Perché la macchina di Turing è importante?
Perché, negli anni ’40, la macchina costituirà un modello teorico per la costruzione dei calcolatori di nuova generazione a programma memorizzato e general-purpose Perché fornisce un modello generale e intuitivo della nozione di calcolabilità, che non è più stato confutato Perché manda definitivamente in crisi il modello di conoscenza basato esclusivamente sulla logica matematica, pur essendone la sua espressione epigonale Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

18 Una macchina universale
Durante la primavera del 1936, Turing inventò la macchina più generale mai concepita e probabilmente mai concepibile. Il dispositivo era dotato solo di: un nastro bidimensionale diviso in quadrati di lunghezza finita, ma lungo a piacere un dispositivo per la lettura, scrittura, eliminazione di simboli e spostamento sul nastro una tavola di istruzioni comprensibile alla macchina, che indicava tutte le attività da svolgere senza ambiguità e tutti gli stati in cui la macchina poteva trovarsi In rete esistono decine di emulatori di macchine di Turing; a questo indirizzo: trovate un applet Java per provare le prestazioni della macchina Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

19 La macchina universale come macchina simulatrice
La MUT emula il comportamento delle altre macchine attraverso una tavola di istruzioni, inserita nella macchina come se fossero i suoi dati La MUT è una macchina “general-purpose”, capace di svolgere qualsiasi compito La MUT è perciò una macchina virtuale La MUT è l’insieme di struttura e tavola di istruzioni: hardware + software Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

20 Lo schema di una MT | Dispositivo di lettura/scrittura/eliminazione di simboli spostamento sul nastro secondo la tavola delle istruzioni Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

21 Von Neumann e l’influenza di Turing
Von Neumann aveva incontrato sicuramente Turing a Princeton, restando colpito dal suo valore Era al corrente del modello logico di calcolo proposto con la macchina universale Applica l’idea alla costruzione di un calcolatore reale: nella memoria (simile al nastro bidimensionale) risiedevano dati e programmi c’era un unico controllo logico che, sulla base della tavola di istruzioni (programma), gestiva in modo centralizzato tutte le operazioni in successione esistevano organi di input e di output (che nella MTU erano porzioni del nastro) Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

22 La logica alla base del calcolatore
Il computer si basa su un modello astratto, statico e isolato di manipolazione dell’informazione Il modello non tiene conto delle limitazioni pratiche di tempo e di grandezza della memoria Il modello non considera l’interazione con l’ambiente, cioè la gestione di informazione destrutturata Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

23 La struttura hardware del computer secondo von Neumann
Central Processing Unit (CPU) Random Access Memory (RAM) INPUT OUTPUT Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

24 Dalla macchina di Turing alla CPU
La macchina di Von Neumann è basata su un’unità di elaborazione centrale (CPU) in grado di eseguire, una dopo l’altra (sequenzialmente), le istruzioni di un programma e di inviare e ricevere dati da e verso un deposito di memoria (RAM) La CPU elabora l’informazione utilizzando porzioni di memoria di lavoro (registri) che sono un po’ l’equivalente di piccole porzioni del nastro della macchina di Turing Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

25 La CPU è contenuta nel microprocessore
Cosa c’è nella CPU? Il control UNIT, l’unità che controlla tutti i processi L’ALU, Arithmetic-Logic UNIT, che esegue le operazioni aritmetiche e logiche I registri, celle di memoria interne alla CPU usate per immagazzinare le informazioni utili per eseguire le istruzioni I bus, le strade di comunicazione che permettono ai dati, agli indirizzi e ai risultati di viaggiare dentro la CPU e fuori di essa verso la memoria Il Clock, che permette a tutti gli elementi interni e esterni alla CPU di muoversi a ritmo, come in una coreografia La CPU è contenuta nel microprocessore Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

26 La memoria interna al sistema
La RAM, Random Access Memory, è una memoria volatile, che si svuota appena finito l’uso di un’applicazione. Si misura in Mega Byte: 64,128, 256, 512 Mb Il BIOS, Basic input-output system, è una memoria non volatile, che contiene le informazioni base del sistema e dell’interazione con le periferiche, detta ROM (Read only memory) o attualmente Flash memory, che può essere aggiornata Cache Memory: è all’interno del microprocessore ed è velocissima Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

27 I dispositivi esterni di memoria
La Memoria di massa o hard disk: costituisce la memoria ausiliaria dell’elaboratore, un’estensione della memoria centrale, dove vengono “appoggiati” dati e programmi. Floppy disk: dischetti che contengono circa 1,44 Mb CD-ROM : contiene fino 750 MB di dati DVD: contiene da 4,7 a 17 GB Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

28 Dispositivi di input e dispositivi di output
Dispositivi di INPUT sono, ad esempio, la tastiera, il mouse, lo scanner, le schede di acquisizione audio e video Dispositivi di OUTPUT sono, ad esempio, il monitor, la stampante, le casse Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

29 Hardware & software La macchina senza i programmi è meno di un corpo senza anima… Il software è costituito da tutte le istruzioni date alla macchina che, a vari livelli, le permettono di interagire con gli utenti I programmi realizzati usando linguaggi sempre più ad alto livello permettono alla macchina di “mimare” virtualmente sempre nuovi compiti Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

30 Macchine virtuali Il computer è dotato di un’architettura organizzata a strati Ogni strato si dice una macchina virtuale, perché realizza i compiti di una macchina diversa e più ad alto livello rispetto alle precedenti Ogni macchina virtuale è un insieme di programmi che realizza funzionalità sempre più potenti, utilizzando i servizi forniti dal livello inferiore Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

31 Gli “strati” del sistema operativo
Servizi richiesti dall’utente Livello utente Interfaccia nucleo verso l’esterno (chiamate a sistema) Livello nucleo Gestore processi Gestore I/O File system Gestore mem. Gestore processori Livello hardware Hardware Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

32 Riassumendo, il sistema operativo è:
gestore dei processi gestore dei processori gestore della memoria centrale (RAM) gestore della memoria secondaria (file system) gestore dell’input/output responsabile dell’interfaccia utente Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

33 L’interfaccia Tutti gli oggetti hanno un’interfaccia, più o meno amichevole, più o meno consolidata L’interfaccia nel computer è molto importante, perché consente di usare le potenzialità della macchina “virtuale”, senza conoscere i dettagli strutturali Le interfacce del personal computer hanno avuto una notevole evoluzione nel corso del tempo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

34 I programmi applicativi storici
Programmi di calcolo (fogli elettronici o spreadsheet): servono per creare tabelle di dati, in genere numerici, ed eseguire calcoli. Ora è possibile anche realizzare grafici Videoscrittura (word processor) Database (creazione e gestione di basi di dati): servono ad automatizzare la gestione di ogni genere di dati automatizzati Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

35 Programmi applicativi più recenti
Giochi: arcade, simulazioni, giochi di strategia, avventura, edutainment Programmi di grafica (disegno o fotoritocco); per esempio: Photoshop dell’Adobe, grafica vettoriale, grafica 3D, CAD Gestione audio e musica: MP3, streaming video, programmi per la gestione di Cd musicali ecc. Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

36 Che cos’è un file Un file designa il concetto di insieme di elementi che non sono leggibili direttamente dall’uomo, ma hanno bisogno dell’uso del computer Un computer file è un’unità logica di differenti materiali creata per consentire il loro uso tramite il computer; identifica, tra l’altro, materiale digitale composto di database, documenti testuali, ipertestuali o multimediali o di una loro combinazione. Ogni contenuto nel computer è scritto in forma di file (anche i programmi, i file di sistema ecc.) Il nome di un file è costituito da due parti separate da un punto (per esempio: prova.txt). A sinistra del punto c’e’ il nome del file, a destra si trova l’estensione (di solito di tre lettere), che identifica il tipo di file. Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

37 Ma che cos’è un programma?
È un insieme di istruzioni È una procedura, o meglio un algoritmo, che, eseguito dalla macchina, le permette di portare a termine le operazioni che le abbiamo richiesto Per essere comprensibile il programma deve dare istruzioni o fare dichiarazioni usando un linguaggio che la macchina - “virtuale” o “reale” che sia – possa capire Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

38 La base della programmazione: l’algoritmo
È una procedura per eseguire compiti Più rigorosamente: è un insieme finito e ordinato di passi strutturati in modo non ambiguo è un procedimento che serve a risolvere in tempo finito un problema o una classe di problemi utilizza dati iniziali e ottiene alla fine dei risultati Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

39 Riassumendo, le caratteristiche di un algoritmo sono:
finitezza, la procedura deve terminare dopo un intervallo finito di tempo assenza di ambiguità, la procedura non deve contenere contraddizioni generalità, è in grado di risolvere tutti i problemi dello stesso tipo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

40 Algoritmo per la preparazione di una torta di cioccolato
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

41 I “livelli” dei linguaggi
Linguaggi di alto livello: più vicini al nostro modo di comprendere e impostare problemi, più facili da imparare e da trasferire e da ‘portare’ su un altro computer (esempio: HTML, Java, C++, Visualbasic ecc.) Linguaggi di basso livello: vicini al linguaggio macchina e all’architettura fisica del computer (esempio: Assembler) Linguaggio macchina: usa solo 0 e 1 ed è comprensibile direttamente dall’hardware, ma molto difficile per l’uomo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

42 Come la macchina comprende un linguaggio di alto livello?
Avrà bisogno di una “traduzione” in un linguaggio che è in grado di comprendere Esistono due forme di traduzione: gli interpreti, che traducono il codice del programma, linea per linea, mentre viene eseguito i compilatori, che, una volta realizzato il programma in un linguaggio di alto livello, lo compilano, trasformandolo una volta per tutte in linguaggio macchina o in linguaggio di più basso livello, controllando errori ed efficacia prima di eseguirlo Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

43 Procedurale vs. dichiarativo
Linguaggio PROCEDURALE: fornisce al computer una serie di ordini su cosa debba fare e in quale circostanza. L’aspetto della descrizione del problema, quando esiste, è minimizzato: il computer “non sa” niente Linguaggio DICHIARATIVO: descrive, dichiara quali sono i dati del problema, fornisce le regole che si possono seguire e lascia che sia il computer a decidere come agire. Possono essere più faticosi per il computer, perché deve derivare da solo le procedure da adottare Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

44 Fra i due litiganti…Object oriented
La caratteristica principale degli OOL è la modularità: certe porzioni di programma si possono usare in varie occasioni È utile per costruire tali programmi partire dagli oggetti e dalle loro proprietà interne e di relazione con gli altri oggetti La programmazione a oggetti funziona bene nei sistemi operativi grafici (a icone) Ognuno degli elementi di Windows, per esempio icone, finestre, pulsanti, menu, sono altrettanti oggetti che hanno proprietà e relazioni gli uni con gli altri Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003

45 Un esempio di programma in Assembler
Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003


Scaricare ppt "Capitolo I. Calcolatore: teoria e storia della macchina "simulatrice""

Presentazioni simili


Annunci Google