RIASSUNTO Modelli teorici della computazione Macchine
calcolatrici Modelli matematici della computazione: la macchina di
Turing Computer elettronici
Slide 3
I: MODELLI TEORICI DELLA COMPUTAZIONE Un PROGRAMMA e un
ALGORITMO posto in forma comprensibile al computer Il nome
ALGORITMO non e stato inventato dagli informatici ma dai matematici
Deriva dal nome del matematico persiano Muhammad ibn Msa 'l-Khwrizm
che attorno all825 scrisse un trattato chiamato Kitb al-djabr wa
'l-muqbala (Libro sulla ricomposizione e sulla riduzione) Muhammad
ibn Msa 'l-Khwrizm AL-KHWARIZMI ALGORISMO ALGORITMO (ALGEBRA deriva
da AL-DJABR)
Slide 4
ALGORITMO Definizione informale di ALGORITMO: una sequenza
FINITA di passi DISCRETI e NON AMBIGUI che porta alla soluzione di
un problema
Slide 5
UN PROBLEMA, DUE ALGORITMI: IL MASSIMO COMUN DIVISORE
Slide 6
MCD: UN ALGORITMO ELEMENTARE A scuola si impara un algoritmo
molto semplice per calcolare MCD: la SCOMPOSIZIONE IN FATTORI PRIMI
42 = 2 x 3 x 7 56 = 2 x 2 x 2 x 7 Algoritmo MCD(M, N): 1. Scomponi
M ed N in fattori primi 2. Estrai i componenti comuni Questo metodo
si puo solo applicare per numeri piccoli (la scomposizione in
fattori primi e molto costosa)
Slide 7
MCD: ALGORITMO DI EUCLIDE Come vedremo piu avanti, i moderni
calcolatori non usano lalgoritmo elementare per calcolare il MCD,
ma un algoritmo molto piu efficiente la cui prima menzione e negli
Elementi di Euclide, e che divenne noto agli occidentali tramite
Al-Khwarizm
Slide 8
II: PRIME MACCHINE CALCOLATRICI Labaco Calcolatrici
meccaniche
Slide 9
LABACO
Slide 10
MACCHINE CALCOLATRICI MECCANICHE Cenni storici: IX XIII sec.
macchine complesse per automazione industriale, in particolare
industria tessile. Telaio di Jacquard, controllato da schede
perforate di cartone, che rendevano automatica la lavorazione della
stoffa e i disegni realizzati nello stabilimento di tessitura
Macchina per il calcolo inventata dal filosofo Pascal Macchina
analitica di Charles Babbage, modello teorico, venne costruita di
recente al museo della scienza e della tecnica di Milano.
Slide 11
IL TELAIO A SCHEDE DI JACQUARD
Slide 12
LE MACCHINE DI BABBAGE
Slide 13
III: LA NOZIONE DI CODICE
Slide 14
IL CODICE MORSE Simboli Efficienza
Slide 15
III: MODELLI MATEMATICI DELLA COMPUTAZIONE
Slide 16
LA MACCHINA DI TURING Una descrizione estremamente astratta
delle attivita del computer che pero cattura il suo funzionamento
fondamentale Basata su unanalisi di cosa fa un calcolatore (umano o
macchina)
Slide 17
Le funzioni di un computer elaborare linformazione usando il
processore (Central Processing Unit - CPU) memorizzare
linformazione usando la memoria principale (RAM) usando la memoria
secondaria fare linput/output dellinformazione usando i dispositivi
di input/output
Slide 18
COMPUTAZIONE E MEMORIA IN UN COMPUTER INPUTOUTPUT MEMORIA CPU
IstruzioniDati
Slide 19
COMPUTAZIONE E MEMORIA NELLA MACCHINA DI TURING In una macchina
di Turing abbiamo : Una CPU: Un PROGRAMMA: un insieme di regole che
determinano il comportamento della testina a partire dal suo stato
e dal simbolo letto (= sistema operativo) 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 Una MEMORIA: un nastro di lunghezza
indefinita, suddiviso in cellette che contengono simboli (ad es. 0e
1);
Slide 20
LA MACCHINA DI TURING
Slide 21
FUNZIONAMENTO DI UNA MACCHINA DI TURING
Slide 22
UNA DIMOSTRAZIONE DEL FUNZIONAMENTO DELLA MACCHINA DI TURING
http://www.warthman.com/ex-turing.htm
Slide 23
PROGRAMMI E DATI Programmi: Prossima lezione: i programmi dal
punto di visto dellhardware I programmi: sequenze di istruzioni per
lelaborazione delle informazione Definiscono quale debba essere il
comportamento del processore Dati: Distinzione tra dato e
informazione: Dato: sequenza di bit, pu essere interpretato in pi
modi diversi Informazione: dato + significato del dato
Slide 24
MACCHINA DI TURING UNIVERSALE Nelle macchine di Turing piu
semplici, si trova una distinzione molto chiara tra PROGRAMMA (=
gli stati) e DATI (= contenuto del nastro) Turing pero dimostro che
era possibile mettere anche il programma sul nastro, ed ottenere
una macchina di Turing universale che LEGGEVA sul nastro la
prossima istruzione da eseguire prima di leggere i DATI su cui
occorreva eseguirla I computer moderni sono macchine di Turing
universali.
Slide 25
ALCUNI RISULTATI DIMOSTRATI USANDO IL MODELLO DI TURING Non
tutte le funzioni sono CALCOLABILI Ovvero: non e possibile scrivere
un algoritmo per risolvere qualunque problema in modo ESATTO ed in
tempo FINITO Il PROBLEMA DELLARRESTO (HALTING PROBLEM): non e
possibile dimostrare che una macchina di Turing universale si
fermera o no su un programma specifico Questi risultati valgono per
qualunque calcolatore, ammesso che valga la TESI DI
CHURCH-TURING
Slide 26
DALLA MACCHINA DI TURING AI COMPUTER MODERNI La macchina di
Turing aiuta a capire come sia possibile manipolare informazione in
base a un programma, leggendo e scrivendo due soli simboli: 0e 1 Da
questo punto di vista, pur essendo un dispositivo ideale, la
macchina di Turing strettamente imparentata col computer
Slide 27
Dalla macchina di Turing alla macchina di von Neumann Un passo
ulteriore, volendoci avvicinare al funzionamento di un vero
computer, costituito dalla MACCHINA DI VON NEUMANN
Slide 28
Il calcolatore elettronico II guerra mondiale, progetto
Manhattan per la costruzione di un ordigno atomico Sviluppo di
svariate competenze, fisica, matematica, ecc. supportati dagli
ingegneri calcolatori coordinati dai coordinatori di calcolo che
passavano informazioni servendosi della posta pneumatica
Slide 29
IV: ELETTRONICA E CALCOLATORI Cio che ha permesso il passaggio
a calcolatori basati sullelettronica e lo sviluppo di INTERRUTTORI
ELETTRONICI: Prima il TUBO A VALVOLE Poi il TRANSISTOR Un
interruttore permette di rappresentare i due stati: 1 (= passa la
corrente), 0 (= non passa)
Slide 30
TUBI A VALVOLE
Slide 31
TRANSISTOR E CIRCUITI INTEGRATI
Slide 32
STORIA DEI COMPUTER ELETTRONICI Ispirati alla macchina di
Turing 1936 Konrad Zuse costru in casa lo Z1 usando i rel; 1941 c/o
politecnico di Berlino Z3 ; 1942 macchina per il computo
elettronico (Satanasso-Berry- Computer). La memoria erano
condensatori fissati ad un grande tamburo cilindrico di 1500 bit;
1943 COLOSSUS, costruito e rimasto segreto fino al 1970.
Memorizzazione di dati in aritmetica binaria basati sulla
ionizzazione termica di un gas
Slide 33
SVILUPPO DEI CALCOLATORI ELETTRONICI 1943-46 ENIAC (Electronic
Numerical Integrator and Computer) sviluppato da Eckert &
Mauchly Logica DECIMALE 30 armadi x 3m, 30t per una superficie di
180mq, 300 moltiplicazioni al secondo fino al 1973 ritenuto il
primo calcolatore elettronico programmabile (riconnettendo i
circuiti!!) 1945-49 EDVAC (Electronic Discrete Variable Automatic
Computer ) Primo computer basato sull Architettura di von Neumann
(dovuta a Eckert, Mauchly & von Neumann): programmi
immagazzinati in memoria Logica BINARIA
Slide 34
ARCHITETTURA DI VON NEUMANN Eckert e Mauchly, dopo aver
sviluppato ENIAC, proposero un modello in cui i programmi erano
immagazzinati direttamente in memoria. (Mentre in ENIAC il
programma doveva essere codificato direttamente in hardware). Il
modello teorico che ne risulto lArchitettura di Von Neumann
influenz direttamente la realizzazione di EDVAC (Electronic
Discrete Variable Automatic Computer)
Slide 35
DA ZUSE A EDVAC
Slide 36
DOPO EDVAC 1948: primo computer commerciale (UNIVAC) 1954:
primo computer a transistors (Bell Labs) ~1960: valvole sostituite
da transistors 1971: primo microprocessore (Intel 4004) 1975: primo
microcomputer (Altair) 1975: fondazione di Microsoft 1976: Apple I
e Apple II 1979: primo Spreadsheet (VisiCalc)
Slide 37
PROSSIME LEZIONI Architettura di Von Neumann Rappresentazione
dei dati
Slide 38
LETTURE Storia dellInformatica
http://www.dimi.uniud.it/~cicloinf/mostra/index.html Wikipedia:
http://it.wikipedia.org/wiki/Storia_dell%27informatica
http://it.wikipedia.org/wiki/Storia_dell%27informatica Wikipedia:
http://it.wikipedia.org/wiki/Storia_del_computerhttp://it.wikipedia.org/wiki/Storia_del_computer
Paul Ceruzzi, Storia dellInformatica, Apogeo Macchina di Turing
applets http://www.warthman.com/ex-turing.htm
http://wap03.informatik.fh- wiesbaden.de/weber1/turing/tm.html
http://wap03.informatik.fh- wiesbaden.de/weber1/turing/tm.html