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

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

Embed Size (px)

Citation preview

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 1

Capitolo I.

Calcolatore: teoria e storiadella macchina "simulatrice"

Page 2: Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 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.

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

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

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

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

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

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) =

4 + 20 + 100 = 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

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

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

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

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

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

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

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

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= 1.048.576 Byte 106

1 Giga (GB) 230= 1.073.741.824 Byte (1024 MB) 109

1 Tera (TB) 240= 1024 GB 1012

1 Peta (PB) 250= 1024 TB 1015

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 10

Quali variabili aumentano il contenuto informativo di un messaggio?

1. 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)

2. La lunghezza del messaggio, ovviamente, aumenta il suo contenuto informativo

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

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

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

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 1111111 (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 65.536 caratteri.

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

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

ASCII BASE

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 14

ISO LATIN 1 ASCII a 8 bit

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 15

Macchina di Turing emacchina di von Neumann

Il computer tra hardware e software

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

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 1936 - 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

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

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

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

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: http://wap03.informatik.fh-wiesbaden.de/weber1/turing/tm.html trovate un applet Java per provare le prestazioni della macchina

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 19

La macchina universalecome 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

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

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

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

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)

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

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

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

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

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

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

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 25

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

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

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

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

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

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

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

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

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

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

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

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 31

Gli “strati” del sistema operativo

Hardware

Gestore processi

Gestore I/O

File system

Gestore mem.

Gestore processori

Interfaccia nucleo verso l’esterno (chiamate a sistema)

Livello nucleo

Livello hardware

Servizi richiesti dall’utenteServizi richiesti dall’utenteLivello utente

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

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

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

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

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

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

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

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.

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

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.

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

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

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

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

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 39

Riassumendo, le caratteristichedi 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

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 40

Algoritmo per la preparazionedi una torta di cioccolato

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 41

I “livelli” dei linguaggi

Linguaggio macchina: usa solo 0 e 1 ed è comprensibile direttamente dall’hardware, ma molto difficile per l’uomo

Linguaggi di basso livello: vicini al linguaggio macchina e all’architettura fisica del computer (esempio: Assembler)

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.)

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

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

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

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

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

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

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

Numerico-Vespignani, Informatica per le scienze umanistiche, Il Mulino, 2003 45

Un esempio di programmain Assembler