Cos’è un Calcolatore? - HomePage - Dipartimento di ... · decidibile e relativamente semplice...
Transcript of Cos’è un Calcolatore? - HomePage - Dipartimento di ... · decidibile e relativamente semplice...
24/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Cos’è un Calcolatore?
DefinizioneA computer is a machine that manipulates data according to a(well-ordered) collection of instructions.
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
25/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Riassumendo. . .
Un problema è una qualsiasi situazione per la cui soluzione ènecessario elaborare una strategia, ovvero una serie di azioni dacompiere per raggiungere il risultatoOgni problema è caratterizzato da un insieme (finito o infinito) di istanzeUn algoritmo è il processo risolutivo di un problema (applicabile adogni sua istanza)
Un programma è la formulazione testuale di un algoritmo in unlinguaggio di programmazione
Un elaboratore è una macchina in grado di eseguire azioni elementarisu dati (istanze di problemi) al fine di raggiungere un risultato
L’esecuzione delle azioni elementari è richiesta all’elaboratore tramitecomandi chiamati istruzioniLe istruzioni sono espresse attraverso frasi di un opportuno linguaggiodi programmazione
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
26/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Limiti di un Elaboratore
LemmaThere are problems that cannot be solved by any model ofcomputation. Such problems are called undecidable (indecidibili).
Example
Input:1 Dato un (generico) programma Prog2 Dati dei valori val (potenziali input per Prog)
Output: SÌ oppure NO
Vincoli:1 Prog deve terminare (in tempo finito) sull’input val
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
27/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Alfabeti e Stringhe
Chiameremo alfabeto un insieme finito e non vuoto di simboli:
Σ1 = {a,b,c} è un alfabetoΣ2 = {0,1} è un alfabetoΣ3 = {1,2,3, . . .} non è un alfabeto (poiché infinito)
Chiameremo stringa su un alfabeto Σ ogni sequenza finita disimboli presi da Σ:
aaa, abbbabc, ccab sono stringhe su Σ1
001 è una stringa su Σ2 ma non su Σ1
aacd non è una stringa né su Σ1, né su Σ2
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
28/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
La stringa vuota
Chiameremo stringa vuota la speciale stringa ε che gode delleseguenti proprietà:
1 la sua lunghezza è nulla (uguale a zero)2 presa una (qualunque) stringa w su un (qualunque)
alfabeto Σ, allora wε = εw = w
Exampleabbcε = εabbc = abbc0100ε = ε0100 = 0100aaεbb = aaεbb = aabb
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
29/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Linguaggio UniversaleChiameremo linguaggio universale su un dato alfabeto Σ l’unione dellastringa vuota con tutte le stringhe (di lunghezza finita) che si possonocostruire partendo da Σ.
Example
Σ∗1 = {ε,a,b, c,aa,ab,ac,ba,bb,bc, ca, cb, cc,aaa, . . .}
Σ∗2 = {ε,0,1,00,01,10,11,000,001,010,011,100,101, . . .}
Lemma
La concatenazione di due stringhe da Σ∗ è ancora una stringa in Σ∗
Example
concatenando aaa e bbb otteniamo aaabbb e bbbaaa (tutte in Σ∗1 )
concatenando 011 e 10 otteniamo 01110 e 10011 (tutte in Σ∗2 )
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
30/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Linguaggi
DefinizioneChiameremo linguaggio su un alfabeto Σ qualsiasi insieme distringhe prese da Σ∗.
Esempi di linguaggi:Sia Σ = {a,b,c, . . . ,z} un alfabeto. Allora,Stagioni = {primavera,estate,autunno, inverno} è unlinguaggio (finito) su Σ
Sia Σ = {1,2,3, . . . ,9,0} un alfabeto. Allora,Primi = {2,3,5,7,11,13,17,19,23,29,31,37, . . .} è unlinguaggio (infinito) su Σ
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
31/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Il problema dell’Appartenenza
DefinizioneTutti i problemi decisionali dell’informatica possono essere ricondottial problema dell’appartenenza di una stringa ad un linguaggio.
Input:1 Dato un alfabeto Σ
2 Fissato un linguaggio L di stringhe appartenenti a Σ∗
3 Data una stringa w sull’alfabeto Σ
Output: SÌ oppure NO
Vincoli:1 la stringa w deve appartenere al linguaggio L
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
32/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Come possono essere “descritti” i linguaggi?
Per enumerazione delle stringhe. Es. {aa,aba,bb,bab}
Con notazione matematica. Es.{anbn ∶ n > 0} = {ab,aabb,aaabbb,aaaabbbb, . . .}
Tramite Grammatiche Formali
. . .
DefinizioneUna Grammatica è una notazione formale con cui esprimere inmodo rigoroso la SINTASSI di un linguaggio.
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
33/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Esempio (1)
Dato l’alfabeto Σ = {a,b, . . . ,z}Dato un insieme di elementi aggiuntivi chiamati non-terminaliNT = {FRASE, SOGGETTO, PREDICATO, OGGETTO}
Example (Grammatica G)
FRASE → SOGGETTO PREDICATO OGGETTOSOGGETTO → marco | luciaPREDICATO → mangia | pulisceOGGETTO → la mela | il banco
La grammatica G definisce il seguente linguaggio: L(G) = {marco mangiala mela, marco mangia il banco, marco pulisce la mela,marco pulisce il banco, lucia mangia la mela, lucia mangiail banco, lucia pulisce la mela, lucia pulisce il banco}
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
34/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Esempio (2)
Example (Grammatica Gab)
P → A QQ → B | P BA → aB → b
Qual’è il linguaggio descritto (o definito) dalla grammatica Gab?P → A Q → A B → a b
P → A Q → A P B → A A Q B → A A B B → a a b b
P → . . . → a a a b b b
. . .
P → . . . → a a . . .a´¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¶
b b . . .b´¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¶
. n n
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
35/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Grammatiche context-free
Chiameremo context-free quelle grammatiche dove tutte le regolesono del tipo
N → α1 . . . αn
In particolare,
N è un non-terminale
ciascun α può essere un non-terminale oppure un simbolodell’alfabeto
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
36/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Equivalenza di Grammatiche context-free
Input:
1 Data una Grammatica context-free G1
2 Data una Grammatica context-free G2
Output: SÌ oppure NO
Vincoli:
1 Il linguaggio “descritto” da G1 deve essere equivalente allinguaggio “descritto” da G2
LemmaTale problema è indecidibile.
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
37/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Appartenenza ad una Grammatica context-free
Input:
1 Data una Grammatica context-free G2 Data una stringa w
Output: SÌ oppure NO
Vincoli:
1 La stringa w deve appartenere al linguaggio descritto da G
LemmaTale problema è decidibile. . . ed è pure “semplice”!
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
38/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
L’informaticaApplicazioni dell’informaticaProblemi, algoritmi, programmi e calcolatoreLinguaggi e computabilità
Linguaggi di programmazione
Un linguaggio di programmazione è un linguaggio formale la cuisintassi è (usualmente) descritta mediante una grammatica context-free
Un programma in un dato linguaggio di programmazione è una stringa(sequenza finita di simboli su un certo alfabeto) che appartiene a queldato linguaggio
La verifica di correttezza sintattica di un programma è un problemadecidibile e relativamente semplice (vedi slide precedente)
Sapere se un programma va in loop su qualche input è un problemaindecidibile (vedi prima slide di questa sezione)
Un programma, pur essendo semplicemente una sequenza di simboli,“dice” al computer le azioni da eseguire così come un manuale diistruzione “dice” a noi come far funzionare una lavatrice!
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
39/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Contenuti
1 Introduzione
2 Rappresentazione dell’informazioneCodifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
3 Architettura del calcolatore
4 Le reti ed internet
5 Fondamenti di programmazione
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
40/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Cosa?
Il calcolatore memorizza ed elabora vari tipi di informazioniNumeriTestiImmaginiSuoni. . .
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
41/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Come?I calcolatori usano la codifica binaria (a due valori) perrappresentare l’informazione.
DefinizioneChiameremo BIT (BInary digiT) l’unità minimale di rappresentazione:0 oppure 1.
Il computer si basa quindi su un alfabeto binario {0,1} e leinformazioni vengono “associate” a stringhe su tale alfabeto.
Example
0 NO
1 SI
Example
00 Inverno01 Primavera10 Estate11 Autunno
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
42/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Perché?
I computer non sono in grado di effettuare operazioni (e dunque diimmagazzinare informazioni) utilizzando un linguaggio più vicino alnostro modo di pensare e di intendere le cose!
A livello fisico i computer lavorano su segnali elettrici, ed i segnalielettrici possono trovarsi solo in due stati (acceso e spento).
DefinizioneOgni informazione gestita dal computer deve necessariamenteessere convertita in formato binario.
Quanti bit servono per codificare i nomi dei giorni della settimana?
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
43/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Celle di Memoria
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL
44/105
IntroduzioneRappresentazione dell’informazione
Architettura del calcolatoreLe reti ed internet
Fondamenti di programmazione
Codifica dell’informazioneCenni di aritmetica binariaRappresentazione di informazione multimediale
Il Byte
DefinizioneCon N bit (ognuno dei quali può assumere 2 valori) possiamorappresentare 2N informazioni diverse.
DefinizionePer rappresentare M informazioni dobbiamo usare (almeno) N bit, inmodo che 2N ≥ M
DefinizioneUna sequenza di 8 bit viene chiamata Byte. Con un byte possiamocodificare 28 = 256 informazioni diverse.
Dr. Marco Manna - Corso di INFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNICAL