Cos’è un Calcolatore? - HomePage - Dipartimento di ... · decidibile e relativamente semplice...

21
24/105 Introduzione Rappresentazione dell’informazione Architettura del calcolatore Le reti ed internet Fondamenti di programmazione L’informatica Applicazioni dell’informatica Problemi, algoritmi, programmi e calcolatore Linguaggi e computabilità Cos’è un Calcolatore? Definizione A computer is a machine that manipulates data according to a (well-ordered) collection of instructions. Dr. Marco Manna - Corso di I NFORMATICA - A.A. 2009/10 Laurea triennale - Comunicazione&DAMS - UNI CAL

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