DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Marco D. Santambrogio – [email protected] Ver. aggiornata al 24 Agosto 2015 1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 2 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 3 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 4 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? 5 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 6 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 7 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) 8 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 9 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 10 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 11 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? 12 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 13 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? 14 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 * 15 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: … / / / / / … … / / / / / … 16 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) 17 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 18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20