Elementi di informatica Codifica dell informazione Ma il problema rimane Cosa significa informazione? Un esempio: lampioni e semafori... al di là delle differenze materiali, funzionalmente che differenza c è? Luce (energia) Energia elettrica (alimentazione) Luce (energia) Energia elettrica (alimentazione) Informazione!! 1
I calcolatori: cos hanno di speciale? 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? Elaborazione dell 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 nel mondo fisico) fare i conti a mente fare i conti con carta e penna (= operare con supporti passivi) fare i conti con una calcolatrice (= operare con supporti rigidi ) Quando si gestisce informazione, si opera su dati mediante istruzioni 2
I primi calcolatori meccanici /1 Blaise Pascal (1623-1662) 1662) dispositivo meccanico (ingranaggi azionati da una manovella) per l esecuzione di somme e sottrazioni. Gottfried Wilhelm von Leibniz (1646-1716) 1716) introduce anche moltiplicazioni e divisioni (~ calcolatrice a quattro funzioni). Charles Babbage (1792-1871) 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). I primi calcolatori meccanici /2 Charles Babbage (1792-1871) 1871) macchina programmabile: analytical engine Formata da quattro parti: store (memoria: 1000 celle 50 cifre), mill (unità di calcolo: 4 operazioni + trasferimento dati), input (lettore schede), output (perforatore schede). 3
l'eniac L ENIAC (Electronic Numerical Integrator And Computer) fu il primo computer elettronico, realizzato all università di Pennsylvania nel 1946 Occupava una grande stanza ed era costituito da molti armadi con circa 18000 valvole (analoghe ai transistor), parecchie delle quali si bruciavano ogni giorno e dovevano essere sostituite Veniva programmato collegando cavi su appositi pannelli, simili a quelli dei centralini telefonici, ed andava nuovamente programmato in tal modo per ogni specifico problema John von Neumann Partecipa al progetto ENIAC. Due intuizioni fondamentali: memorizzare i programmi in forma digitale nella stessa memoria dei dati per rendere più semplice la programmazione (rispetto all utilizzo di cavi e interruttori); utilizzare l aritmetica binaria invece di quella decimale (due valvole per bit invece di dieci per cifra). Il suo progetto (macchina( di von Neumann) ) è ancora oggi alla base di quasi tutti i calcolatori digitali. 4
L architettura di Von Neumann Un calcolatore deve essere in grado di: eseguire istruzioni su dati; controllare il flusso dell esecuzione; memorizzare i dati su cui operare; memorizzare successioni di istruzioni; interagire con gli utenti e con eventuali altri sistemi. Sottosistema di interfaccia Comunica con utenti o con altri dispositivi Sottosistema di memorizzazione Memorizza dati e istruzioni Sottosistema di interconnessione Sottosistema di elaborazione Ha due funzioni: 1. eseguire le istruzioni; 2. controllare il flusso dell esecuzione. Il transistor Inventato ai Bell Labs nel 1948 da John Bardeen,, Walter Brattain e William Shockley: nel giro di 10 anni rivoluziona la ricerca sui calcolatori; alla fine degli anni 50 i calcolatori a valvole sono già obsoleti. Digital Equipment Corporation (DEC) fondata nel 1957 da Kenneth Olsen; nel 1961 realizza il PDP 1, il primo minicalcolatore. Sviluppo della tecnologia d integrazione: d decine (SSI), centinaia (MSI) e migliaia (LSI) di transistor sono integrati sullo stesso pezzo di silicio (chip); possibilità di realizzare calcolatori più piccoli, più veloci e meno costosi dei loro predecessori. Due famiglie di calcolatori rappresentative: 360 di IBM PDP-11 di DEC 5
Very Large Scale Integration (VLSI) 105 107 107 transistor integrati per chip. Passaggio dai minicalcolatori,, alle workstation,, ai Personal Computer (PC): usati per applicazioni fortemente interattive (elaborazione testi, fogli elettronici, ); in origine proposti come kit da assemblare, senza software; due architetture principali: Apple (basato su CPU Motorola e PowerPC) primo PC, progettato da Steve Jobs e Steve Wozniak nel 78, architettura proprietaria! IBM e compatibili (CPU Intel e SW Microsoft Wintel ) realizzato utilizzando componenti off the shelf, architettura di dominio pubblico, quindi replicabile da altri (cloni)! Il concetto di informazione un foglio cosparso di macchie Configurazione 1 Configurazione 2 6
Informazione e supporto L informazione è portata da,, o trasmessa su,, o memorizzata in,, o contenuta in qualcosa; questo qualcosa qualcosa però non è l informazione stessa. Ogni supporto ha le sue caratteristiche in quanto mezzo su cui può essere scritta dell informazione. Informazione e supporti (1) supporti La stessa informazione può essere scritta su supporti 10 differenti. 11 10 9 8 7 6 7
Informazione e supporto (3) Distinguere informazione e supporto fisico è distinguere tra entità logiche ed entità fisiche : : l informazione richiede un supporto fisico, ma non coincide con esso; l informazione è un entità extra-fisica fisica, non interpretabile in termini di materia-energia e sottoposta alle leggi della fisica solo perché basata su un supporto fisico. L informazione si può creare e distruggere. Quali caratteristiche deve avere un sistema fisico per supportare informazioni? Si ottiene informazione quando, dato un insieme di alternative possibili, la lettura del supporto ne elimina alcune e ne seleziona altre. Condizione necessaria perché un supporto possa portare informazione è che possa assumere configurazioni differenti,, a ognuna delle quali venga associata una differente entità di informazione. 8
Informazione Il concetto di informazione implica quello di scelta Esempio: di che colore è la luce accesa del semaforo all incrocio? La luce del semaforo è... scelta fra { { rosso, giallo, verde} } scelta di un valore tra quelli definiti in un insieme finito di elementi nessun altro valore che non appartiene a { { rosso, giallo, verde} } potrà essere usato per definire il colore della luce accesa del semaforo...l eleborazione automatica dei dati 17 Tipo e Valore TIPO dell'informazione: insieme finito nel quale viene effettuata la scelta VALORE dell informazione: l'elemento scelto Tipo e Valore non bastano... esempio: numeri interi 2.000.000 Tipo Valore ma cosa rappresenta il valore 2.000.000? gli abitanti di Napoli? il patrimonio di Mario Rossi? Il numero di articoli venduti?... 18 9
Attributo ATTRIBUTO: definisce il significato dell informazione, ossia serve a capire di cosa si tratta e ad identificarla (distinguerla da altre) Esempio: Il cliente è il sig. Ugo Attributo Valore Tipo: Nome di persona Tipo: Numero reale la soluzione dell'equazione è 3,5 19 Informazione Definizione: L'informazione è la terna di elementi {TIPO, ATTRIBUTO, VALORE} se manca uno di questi elementi non si ha informazione! 20 10
Cardinalità di un tipo e Quantità di informazione Ogni tipo ha una propria cardinalità n che è pari al numero di elementi che compongono il tipo La cardinalità esprime il numero di elementi tra cui scegliere La cardinalità può essere usata per misurare la quantità di informazione 21 Cardinalità di un tipo e Quantità di informazione Una scelta fra valori di un tipo a cardinalità n é più complessa di una scelta fra valori di un tipo a cardinalità m se n>m Una cardinalità n>m, implica che il tipo a cardinalità n ha una quantità di informazione maggiore di quello a cardinalità m N.B. nell'universo esistono infiniti tipi, un ambiente di elaborazione è caratterizzato da un numero finito e definito di tipi 22 11
Misura dell informazione La scelta più elementare è quella fra elementi di un tipo a cardinalità 2 (al di sotto di 2 non c è scelta...) BIT: è la quantità di informazione associata ad ogni informazione il cui tipo ha cardinalità 2 il BIT è l unità di misura dell informazione 23 Misura dell informazione E' possibile stabilire a quanti bit equivale la quantità di un informazione il cui tipo sia a cardinalità n Il problema può essere posto in questi termini: a quante scelte fra 2 equivale una scelta fra n? e ha una semplice formulazione matematica 24 12
Misura dell informazione Formulazione matematica B = [log 2 n ] B = quantità di informazione in BIT n = cardinalità del tipo [x] operazione che associa ad x il minimo numero intero maggiore o uguale ad x ovvero B è pari alla parte intera di log 2 n, maggiorata di 1 se la parte decimale è diversa da 0 ovvero B è l esponente da dare a 2 affinché la potenza risultante sia pari al minimo numero maggiore o uguale di n 2 B >n 25 colore semaforo 2 bit seme carta 2 bit cifra decimale 4 bit lettera alfabeto italiano 5 bit numero lotto 7 bit Esempi: una regione di Italia... uno studente in aula... un cittadino di Napoli... un italiano... 26 13
Misura dell informazione il bit ha solo multipli byte 8 bit (2 3 ) K 1024 bit (2 10 ) Kbyte 1024 byte (2 10 byte) M 1048576 bit (2 20 ) Mbyte 1048576 byte (2 20 byte) G 1073741324 bit (2 30 ) Gbyte 1073741324 byte (2 30 byte) 27 Codifica dell Informazione problema della rappresentazione dei valori delle informazioni la rappresentazione deve essere effettuata attraverso un insieme finito di simboli disponibili il numero di simboli disponibili è in generale minore del numero di valori da rappresentare la rappresentazione avviene associando a ciascun valore una sequenza enza di simboli La CODIFICA è una tecnica con la quale un dato viene rappresentato mediante un definito insieme di simboli,, o di dati, più elementari di qualsiasi natura (grafica, luminosa, acustica,, ) Con tali simboli è possibile formare sequenze che possono essere messe in relazione biunivoca con gli elementi costituenti l informazione 28 14
Codifica dell Informazione Esempi: Alfabeto Morse sequenze di punti e linee rappresentanti caratteri numero matricola sequenza di cifre studente codice articolo sequenza di simboli articolo di un negozio codice fiscale sequenza di caratteri rappresentanti una persona rappresentanti uno rappresentanti un numeri Naturali sequenze di cifre {0, 1, 2,., 9}. parole della lingua italiana sequenze di lettere {a, b, c,, z} 29 Codifica dell Informazione Formalizzando: l informazione da rappresentare appartiene ad un tipo T a cardinalità N T=(x 1,, x n ) x i generico valore da rappresentare T è detto Alfabeto Sorgente si vogliono rappresentare i valori x i tramite gli elementi di un altro tipo E a cardinalità K < N E=(a 1,, a k ) a j generico simbolo E è detto Alfabeto in Codice La Codifica è un applicazione C, detta tabella-codice codice, che trasforma ciascun elemento x i T in una sequenza di elementi a j E, detta parola- codice (di lunghezza l i ) 30 15
Codifica dell Informazione Esempio: Alfabeto Sorgente: : (picche, fiori, quadri, cuori) Alfabeto in codice: : (*, /) Codice Altro Codice picche * ** fiori / // quadri ** */ cuori // /* 31 Codifica dell Informazione Codifica a lunghezza fissa la lunghezza l i delle parole codice associate ai valori dell'alfabeto sorgente è costante Codifica a lunghezza variabile la lunghezza lil delle parole codice associate ai valori dell'alfabeto sorgente è variabile il codice può essere una associazione del tutto arbitraria di parole codice a valori oppure, può essere fondato su regole ben definite esempi: il codice fiscale, il codice esame, numero di matricola 32 16
Codifica dell Informazione Codifica a lunghezza fissa T=(x 1,, x n ) Alfabeto Sorgente, cardinalità N E=(a 1,, a k ) Alfabeto in Codice, cardinalità K la parola-codice ha una lunghezza l i = m = costante per tutti gli elementi di T ad ognuno degli elementi x i T si fa corrispondere una delle k m disposizioni con ripetizione dei k simboli di E sugli m posti della sequenza e dovrà necessariamente aversi k m > N (gli N elementi devono trovare almeno altrettante disposizioni che li rappresentino) Per codificare un elemento di un tipo a cardinalità N mediante un alfabeto in codice di K simboli è necessaria una sequenza di lunghezza minima m, con m =[ log k N ] 33 Esempio: Codifica dell Informazione T=(x 1, x 2, x 3, x 4, x 5, x 6, x 7, x 8, x 9 ) E=(a, b, c ) m =[ log 3 9 ] = 2 x 1 = a b x 2 = b a x 3 = a c x 4 = c a x 5 = b c x 6 = c b x 7 = a a x 8 = b b x 9 = c c Codice non ridondante k m = N 34 17
Codifica dell Informazione Esempio: T=(x 1, x 2, x 3, x 4, x 5, x 6, x 7, x 8, x 9 ) E=(0, 1) m =[ log 2 9 ] = 4 x 1 = 0000 x 2 = 0001 x 3 = 0010 x 4 = 0011 x 5 = 0100 x 6 = 0101 x 7 = 0110 x 8 = 0111 x 9 = 1000 Codice ridondante k m > N 35 I giorni della settimana in binario (1) Lunedì Martedì Domenica Mercoledì Sabato Giovedì Venerdì Lunedì Giovedì Martedì Mercoledì Domenica Sabato Venerdì 0 1 Lunedì Martedì Giovedì Mercoledì Sabato Venerdì Domenica 00 01 10 11 Lunedì Martedì Mercoledì Giovedì Venerdì Sabato Domenica 000 001 010 011 100 101 110 111 1 bit 2 gruppi 2 bit 4 gruppi 3 bit 8 gruppi 36 18
Un Modello x 1 x 2 x 3 x n CODIFICATORE a 1 a 2 a k Esempio: n input, gli elementi dell alfabeto sorgente, di cui 1 solo attivo Un applicazione che trasforma un element dell alfabeto sorgente nella parola codice k output, i simboli dell alfabeto codice, formanti la parola codice Lun Mar Dom CODIFICATORE 1 0 1 37 19