DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Marco D. Santambrogio – [email protected]
Ver. aggiornata al 3 Ottobre 2013
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Che cos'è? Una piattaforma? Un portale?
No, è il Sistema Operativo del M5S
http://www.beppegrillo.it/2013/10/che_cose_una_piattaforma_un_portale_no_e_il_sistema_operativo_del_m5s.html
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
"Di imparare i fondamenti e i concetti dell'informatica intesa come
scienza dell'informazione, e non solo di apprendere l'utilizzo dei suoi
strumenti, come il C", ma speravo comunque che ci insegnasse a fare
qualche "cazzata", tipo programmare i videogiochi..
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Per aiutarci a capire come sta andando il corso abbiamo creato due
form per raccogliere i vostri feedback ad ogni lezione/esercitazione
• Form per le lezioni
http://tinyurl.com/infob1314-feedbacklez
• Form per le esercitazioni
http://tinyurl.com/infob1314-feedbackexe
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
•
Informazione e trattamento dell’informazione
Programmabilità del calcolatore e concetti di hardware e software
Macchina di von Neumann
Comunicazione tra esseri umani e calcolatori
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Significato 1: [informazione = dati + istruzioni]
insieme dei dati su cui operare e delle istruzioni con cui elaborare tali dati
▶ per esempio, nell’operazione 1+2 sono entità di informazione i numeri 1 e 2 e
l’operatore ‘+’
enfasi sulla distinzione tra struttura e descrizione dell’operazione
▶ che si scriva “uno più due” o “1+2” l’informazione è la stessa
• Significato 2: [informazione = dati con significato]
ciò che si ottiene dai dati a cui è stato attribuito un significato
▶ per esempio, i numeri 1 e 2 sono semplici dati; diventano entità di informazione solo
quando si stabilisce che si riferiscono, per esempio, a mele o a portaerei
enfasi sulla distinzione tra forma e contenuto
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Molti strumenti sono stati progettati e realizzati per trattare
informazione:
▶ le matite servono per scrivere
(non per trasferire grafite su carta)
▶ i violini servono per suonare
(non per produrre onde acustiche)
• A differenza di questi, i calcolatori sono dispositivi programmabili
• Ma cosa significa programmabile?
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• La programmabilità di un dispositivo
attiene alle modalità con cui
esso gestisce informazione
• Per esempio, per risolvere questo problema,
si può:
▶ provare e riprovare
(= operare direttamente sul sistema da trasformare)
▶ fare i conti a mente
(= operare senza un supporto fisico)
▶ fare i conti con carta e penna
(= operare con supporti passivi)
▶ fare i conti con una calcolatrice
(= operare con supporti “rigidi”)
▶ oppure …
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Per gestire informazione, si opera su dati mediante istruzioni:
a mente
supporto
materiale
mente
carta e penna
dati
X
dati
istruzioni
X
istruzioni
calcolatore
supporto
materiale
supporto
materiale
X
istruzioni:
esecuzione
X
istruzioni:
controllo
X
X
X
mente
calcolatrice
dati
mente
supporto
materiale
dati
X
Istruzioni: esecuzione
X
Istruzioni: controllo
mente
X
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Ogni essere umano elabora quotidianamente informazione
in grande quantità senza usare strumenti particolarmente sofisticati
• Due situazioni possono rendere difficile questa attività:
▶ quando il problema supera un certo grado di complessità
▶ quando è necessario elaborare informazione con particolare rapidità
• Nel corso della storia, l’uomo ha creato molti strumenti
in grado di supportarlo nell’elaborazione dell’informazione:
▶ strumenti formali (per es. il sillogismo) che consentono di trattare
entità di informazione dotate di una certa struttura,
ricavandone delle conclusioni per via puramente elaborativa
▶ strumenti materiali (modelli in scala, galleria del vento, …), che “materializzando”
le entità di informazione su cui si opera ne facilitano l’elaborazione
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Blaise Pascal (1623-1662)
dispositivo meccanico (ingranaggi azionati da una manovella) per l’esecuzione
di somme e sottrazioni
• Gottfried Wilhelm von Leibniz (1646-1716)
introduce anche moltiplicazioni e divisioni
(calcolatrice a quattro funzioni)
• Charles Babbage (1792-1871)
progetta e realizza un “difference engine”
▶ calcola tabelle di numeri utili per la navigazione
▶ unico algoritmo: polinomiale alle differenze finite
▶ output: fori su una piastra di rame
(schede perforate)
24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
1. Input:
dati e istruzioni
2. Elaborazione
3. Output:
dati (risultati
dell’elaborazione)
e quindi, il calcolatore si può intendere come una black box:
Input
calcolatore
Output
25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ricevendo una richiesta dall’utente, il calcolatore svolge in successione
due attività:
• controlla di essere in grado di interpretare il comando, cioè di riconoscere il
comando come corretto e corrispondente a un’azione che è in grado di eseguire
• se il controllo ha dato esito positivo, esegue l’azione associata al comando e,
quando richiesto, presenta il risultato all’utente
Invece di inviare al calcolatore un comando per volta, l’utente può scegliere
di creare una successione di comandi (= programma) e inviarla al calcolatore,
che autonomamente è in grado di interpretare ed eseguire il programma stesso,
un’istruzione per volta
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
L’utente-programmatore e il calcolatore
devono parlare uno stesso linguaggio
Un’opzione potrebbe essere di “insegnare al calcolatore” a comprendere
(= interpretare ed eseguire comandi espressi in) una lingua storico-naturale come
l’italiano o l’inglese
• Vantaggi:
▶ lingue semanticamente ricche, e quindi sicuramente in grado di esprimere i comandi
▶ lingue già note all’utente
• Svantaggi:
▶ lingue semanticamente ricche, e quindi a rischio di ambiguità
▶ lingue complesse da insegnare / imparare
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Comando: “nella frase
l'informatica, che in inglese è detta 'computer-science',
è interessante anche se difficile
metti in grassetto la parola X”
• X: “è”  ambiguo: quale delle due “è”?
• X: “in decima posizione”  ambiguo: “computer-science” conta come una o due parole?
Comando: “se la condizione A è vera esegui l’istruzione B e poi esegui l’istruzione C”
•  ambiguo: C deve essere eseguito comunque o solo se A è vera?
28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un’opzione alternativa:
• creare un linguaggio “di programmazione”,
dedicato alla comunicazione con il calcolatore
• Vantaggi:
▶ linguaggio progettato specificamente, e quindi efficiente
▶ linguaggio non ambiguo
• Svantaggi:
▶ linguaggio formalizzato, e quindi strutturalmente diverso dalle lingue storico-naturali
▶ linguaggio non noto all’utente
29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Comando: “se la condizione A è vera esegui l’istruzione B e poi esegui l’istruzione C”
•  ambiguo: C deve essere eseguito comunque o solo se A è vera?
Lo stesso comando viene riscritto in un linguaggio di programmazione si disambigua:
if(A)
{
B;
}
C;
se A è vero esegui B;
in ogni caso quindi esegui l’istruzione C
if(A)
{
B;
C;
}
se A è vero esegui sia B sia C
30
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Sebbene si consideri abitualmente che oggetto del calcolo sono numeri,
i calcolatori operano anche su dati non numerici, come testi, immagini, musica…
Un problema di elaborazione di dati non numerici è riconducibile a calcolo numerico
se per prima cosa i dati vengono codificati nella forma di numeri
Per esempio, un testo può essere convertito in una successione di numeri grazie al
Codice ASCII: spazio  32; ‘A’  65; ‘B’  66; …; ‘a’  97; ‘b’  98; …
e quindi: “ciao mondo”  99 105 97 111 32 109 111 110 100 111
Data questa codifica, un problema come:
trasformare una frase scrivendo con l’iniziale maiuscola tutte le parole che la compongono
(per cui “ciao mondo” dovrebbe diventare “Ciao Mondo”)
è effettivamente un problema di calcolo
31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Se il linguaggio di programmazione adottato contiene un’istruzione words_uppercase(),
il problema si risolve semplicemente: words_uppercase(“ciao mondo”)
Altrimenti, è il programmatore a dover “scomporre” il problema in sottoproblemi
più semplici, per esempio:
1. identifica le parole da cui la frase è costituita
2. per ogni parola, metti il suo primo carattere in maiuscolo
Data la successione: 99 105 97 111 32 109 111 110 100 111
•la prima istruzione corrisponde a individuare nella successione le sotto-successioni di
numeri separate dal numero 32
•la seconda istruzione corrisponde sottrarre 32 al primo elemento di ogni sotto-successione,
Una volta codificati numericamente i dati in ingresso, il problema viene dunque risolto
mediante semplici istruzioni come “se … è uguale a … allora …”, “somma … a …”, e così via
32
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Non ogni problema ammette una soluzione calcolabile
•Quali problemi ammettono una soluzione calcolabile?
•Esistono problemi calcolabili che i calcolatori non sono in grado di risolvere?
•Esistono problemi che solo certi calcolatori sono in grado di risolvere?
cioè: esistono tipi diversi di calcolatori in relazione alla loro capacità
di risolvere problemi?
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ipotesi: il calcolo è una trasformazione di dati,
in cui l’output è determinato univocamente dall’input attraverso una funzione:
output = f(input)
input
f
Per esempio, 1+2*3 e 4+5*6 sono due casi particolari della stessa funzione f(x,y,z)=x+y*z
Ipotesi: le funzioni complesse possono essere scomposte
come successioni di funzioni più semplici
Per esempio:
f
x,y,z
x
+
x+y*z
y
z
*
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un sistema di calcolo molto semplice:
• un nastro organizzato in celle in ognuna delle quali è scritta una barra o nulla
e con codifica “unaria” (1  “ / ”; 2  “ // ”; 3  “ /// ”; …
• un sistema di lettura e scrittura che opera in base a regole della forma:
se sei nello stato ... e nella cella hai letto ...,
allora nella cella scrivi ..., passa nello stato ...
e spostati nella cella ...
Per esempio, il nastro:
…
/ /
/ / /
…
codifica i numeri 2 e 3, e il calcolo della funzione x+y si può realizzare in questo modo:
…
/ /
/ / /
…
…
/ /
/
/ /
…
35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Intorno al 1930 l’inglese Alan Turing e lo statunitense Alonso Church
proposero la seguente tesi:
ogni funzione “naturalmente considerata calcolabile”
è calcolabile da una macchina di Turing
La conseguenza è sorprendente:
l’insieme delle funzioni calcolabili è lo stesso per tutti i calcolatori;
le differenze di capacità tra calcolatori sono:
• quantitative (= tempo di calcolo)
• e non qualitative (= tipo di funzioni calcolabili)
36
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Fonti per lo studio
▶ Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill
 Capitolo 1
▶ Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed,
McGrawHill
 Capitolo 1
▶ The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley
 Capitolo 1
• Approfondimenti
▶ Uomini e computer. Storia delle macchine che hanno cambiato il mondo, D.
Casalegno, HOEPLI
• Credits
▶ Prof. G. Buonanno e D. Sciuto, LIUC
37
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
38
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
39
Scarica

PPT - V2 - Dipartimento di Elettronica ed informazione