Informatica Non è… (solo) imparare a usare il computer e i programmi (come sono fatti oggi)… imparare a progettare macchine elettroniche di un qualche tipo… e per noi umanisti non è (almeno in prima istanza) imparare a programmare
Informatica Informazione + Automatica Elaborazione automatica di informazioni Informazione → rappresentazione di dati mediante simboli → codifica digitale Automatica → Macchina (automa) → Computer Elaborazione (automatica) → algoritmo calcolo → manipolazione di simboli secondo regole
Informazione L’informazione è il prodotto di un atteggiamento informativo che rende significative le diverse configurazioni di una serie di classi di oggetti o eventi della realtà assegnando a ciascuna configurazione un valore informativo per cui ogni configurazione sta o che ogni configurazione identifica
La struttura di un oggetto informativo Per la precisione dobbiamo parlare di classi di identità delle configurazioni e di classi di identità dei valori informativi. Infatti l’oggetto informativo è una classe invariante di oggetti fisici (type) le cui occorrenze (token) compaiono in particolari contesti informativi
La struttura di un oggetto informativo Di conseguenze possiamo distinguere diversi livelli in un oggetto informativo: un insieme di classi di configurazioni che chiamiamo rappresentazioni un insieme di classi di valori informativi o entità di informazione
La struttura di un oggetto informativo A loro volta le entità di informazione si dividono in due livelli: Livello semantico (la classe dei significati stretti) Livello pragmatico (la classe dei sensi)
Modalità di rappresentazione Esistono due modalità di rappresentazione Rappresentazione analogica Rappresentazione discreta
Rappresentazione analogica Nella rappresentazione analogica le proprietà del fenomeno rappresentato è omomorfa alla forma della rappresentazione. La relazione tra rappresentazione e rappresentato è intensionale
Rappresentazione discreta Nella rappresentazione discreta si utilizza un insieme finito di classi configurazione o rappresentazioni distinte che vengono messe in relazione estensionale con elementi discreti dell’universo rappresentato Le classi di configurazione sono dette simboli Un insieme di simboli è detto alfabeto
Rappresentazione discreta Universo rappresentato Segni Eventi fisici Corrente spenta Temperatura sotto il limite Temperatura sopra i limite Corrente accesa
Rappresentazione discreta Nella rappresentazione discreta le proprietà del fenomeno rappresentato vengono tradotte mediante relazioni sintattiche tra i simboli La struttura della rappresentazione è isomorfa con la struttura del rappresentato Un alfabeto con sintassi è un codice formale
La rappresentazione digitale Esistono numerose forme di rappresentazione discreta la scrittura alfabetica le cifre della numerazione i formalismi logici Ai fini informatici assume particolare interesse la rappresentazione binaria digitale
La rappresentazione digitale Sistema di rappresentazione discreto basato su due soli simboli distinti che assumomo convenzionalmente la forma di 0 e 1. Questi due simboli sono le unità minime di rappresentazione e memorizzazione digitale Tali unità vengono comunemente denominate BIT da binary digit
La rappresentazione digitale Il sistema digitale consente la rappresentazione di entità informative diverse qualitativamente. Esso cioè consente di codificare le entità informative veicolate da altri codici sia discreti sia analogici.
Strategie di rappresentazione digitale strategie per alfabeti più complessi: combinatoria di simboli strategie per fenomeni continui nello spazio: quantizzazione strategie per fenomeni continui nel tempo: campionamento
Il computer e l’automa Raccogliere Conservare Organizzare Elaborare Generare Trasmettere … Il computer è una macchina in grado di gestire ed elaborare (velocemente) grandi quantità di informazioni (in formato digitale) in modo automatico, senza richiedere intervento intelligente esterno (umano o alieno o divino…)
Il computer In linea generale, un computer è dunque uno strumento per elaborare informazione Il computer lavora partendo da informazione in ingresso (l’input del processo di elaborazione), la elabora in base a una serie di regole (un programma), e restituisce informazione in uscita (l’output del processo)
Il computer – prime nozioni output input elaborazione
Il computer – prime nozioni dispositivi di input dispositivi di output
Il computer – prime nozioni Ma cosa succede ‘in mezzo’ fra i dispositivi di input e di output? Come avviene l’elaborazione dei dati, e quali componenti del computer se ne occupano?
Il computer – prime nozioni La componente più importante demandata all’elaborazione dei dati è l’unità di elaborazione centrale, o CPU (Central Processing Unit) CPU
Dalla macchina di Turing alla CPU
Dalla macchina di Turing alla CPU Per capire come funzioni la CPU, può essere utile partire da una macchina astratta: la cosiddetta MACCHINA DI TURING La macchina di Turing è una costruzione concettuale semplicissima ed estremamente potente
Dalla macchina di Turing alla CPU Dobbiamo l’idea della macchina di Turing al geniale logico e matematico inglese Alan Turing (1912 – 1954)
Dalla macchina di Turing alla CPU La macchina di Turing è composta da un nastro di lunghezza indefinita, suddiviso in cellette che contengono simboli (ad es. ‘0’ e ‘1’); una testina che si trova in ogni momento in uno fra un insieme limitato di stati interni e che si muove sul nastro, leggendo e se del caso modificando il contenuto delle cellette; un insieme di regole che determinano il comportamento della testina a partire dal suo stato e dal simbolo letto
Dalla macchina di Turing alla CPU testina regole… … nastro
Dalla macchina di Turing alla CPU Per capire come funziona una macchina di Turing, la cosa migliore è sperimentare Un buon simulatore di macchina di Turing (quello mostrato nella figura precedente) è in rete all’indirizzo http://sunsite.utk.edu/ winners_circle/education/EDUHM01H/applet.html
Dalla macchina di Turing alla CPU Sembra incredibile, ma – programmata attraverso le regole opportune - una macchina di Turing è in grado di effettuare moltissime operazioni anche assai complesse Anzi: è in grado di calcolare il valore di qualsiasi funzione per la quale disponiamo di procedure effettive di computazione
Dalla macchina di Turing alla CPU La macchina di Turing aiuta a capire come sia possibile manipolare informazione in base a un programma, leggendo e scrivendo due soli simboli: ‘0’ e ‘1’ Da questo punto di vista, pur essendo un dispositivo ideale, la macchina di Turing è strettamente imparentata col computer
Dalla macchina di Turing alla CPU Un passo ulteriore, volendoci avvicinare al funzionamento di un vero computer, è costituito dalla MACCHINA DI VON NEUMANN
La macchina di Von Neuman Il modello teorico costituito dalla Macchina di Von Neumann influenzò direttamente la realizzazione di due fra i primi computer: l’ENIAC (Electronic Numerical Integrator and Computer) e l’EDVAC (Electronic Discrete Variable Automatic Computer)
La macchina di Von Neuman La macchina di Von Neumann è basata su un’unità di elaborazione centrale (CPU) in grado di eseguire una dopo l’altra (sequenzialmente) le istruzioni di un programma, e di inviare e ricevere dati da e verso un deposito di memoria (RAM) La CPU elabora l’informazione utilizzando porzioni di memoria di lavoro (registri) che sono un po’ l’equivalente di piccole porzioni del nastro della macchina di Turing
La macchina di Von Neuman La CPU è la vera e propria ‘fabbrica’ nella quale si svolge il lavoro di elaborazione Al suo interno, l’unità aritmetico-logica (ALU) si occupa di svolgere le operazioni aritmetiche e le operazioni logiche
La macchina di Von Neuman I registri corrispondono un po’ ai banchi di lavoro di una fabbrica; la ALU corrisponde un po’ all’operaio che lavora sui dati Un orologio o ‘clock’ di sistema ‘segna il tempo’ per il lavoro che si svolge all’interno della fabbrica-CPU
La macchina di Von Neuman
Hardware e software Fino a qui, abbiamo parlato soprattutto di componenti fisiche del computer, il cosiddetto hardware Sappiamo però che il funzionamento di un computer non dipende solo dall’hardware ma anche, e in maniera determinante, dai programmi che il computer è in grado di eseguire, il cosiddetto software
Una parola: algoritmo Abu Ja’far Muhammad ibn Musa ‘al-Khuwarizmi’ scrive un trattato dal titolo: Kitab al-jabr wa’l-muqâbalah (Libro dell’integrazione e delle soluzioni numeriche ). Fu così che da al-jabr derivò la parola algebra, mentre da al-Khuwarizmi scaturì il termine algorismo che, per attrazione del termine greco arimo (arithmos, numero), si trasformò in algoritmo.
L’algoritmo del sei più quattro Siano m, n, r e p quattro numeri positivi si sommi m a n si ponga il risultato in r se r >= 10 allora r = unità(r) e p = decine(r) (e così via…)
Una parola: algoritmo Abu Ja’far Muhammad ibn Musa ‘al-Khuwarizmi’ scrive un trattato dal titolo: Kitab al-jabr wa’l-muqâbalah (Libro dell’integrazione e delle soluzioni numeriche ). Fu così che da al-jabr derivò la parola algebra, mentre da al-Khuwarizmi scaturì il termine algorismo che, per attrazione del termine greco arimo (arithmos, numero), si trasformò in algoritmo.
L’algoritmo del sei più quattro Siano m, n, r e p quattro numeri positivi si sommi m a n si ponga il risultato in r se r >= 10 allora r = unità(r) e p = decine(r) (e così via…) Espressione assai poco scientifica
L’algoritmo del cassetto Cosa fare quando cerchiamo una scheda in un archivio: 1. scegliere il cassetto giusto dello schedario; 2. scegliere una scheda nella zona del cassetto in cui potrebbe essere il nome che cerco; 3. se la scheda non è quella giusta allora ripeti 2; 4. se la scheda è quella giusta allora fine.
L’algoritmo del cassetto scegliere il cassetto scegliere una scheda se la scheda è quella giusta fine
Una parola: algoritmo Un algoritmo, quindi, è una sequenza di operazioni che devono essere eseguite per compiere un lavoro preciso. Queste operazioni devono essere tali da: garantire che l’algoritmo s’arresti dopo un numero finito di passi; devono essere completamente descritte e specificate; devono poter essere effettivamente eseguite.
Una parola: algoritmo Le operazioni, inoltre, devono: essere completamente ed esplicitamente descritte per mezzo di istruzioni non ambigue (in modo da poter essere eseguite correttamente e senza ulteriori specificazioni); essere poi eseguibili nella realtà utilizzando le risorse e il tempo disponibili.
Una parola: algoritmo Un algoritmo deve, per dirla in altri termini, rispondere a requisiti: di finitezza di calcolo (sono definite le condizioni dell’arresto dopo un numero finito di passi); di finitezza d’espressione (è costituito da una sequenza finita di istruzioni); di effettività (deve poter essere effettivamente eseguibile); di determinismo (a ogni passo viene definita un’unica operazione da eseguire al passo successivo e al verificarsi di certe condizioni).
La macchina di Turing E non basta! 4 + 3 = 7 Lettore I I I I I I I I Se nella casella c’è un simbolo allora leggi la casella successiva Se nella casella non c’è un simbolo allora scrivi il simbolo nella casella Se la casella è (di nuovo) vuota allora un passo indietro e cancella il simbolo