L AUTOMA ESECUTORE L AUTOMA ESECUTORE

Documenti analoghi
L AUTOMA ESECUTORE L AUTOMA ESECUTORE

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Capitolo 1 Linguaggi e Macchine Astratte

L ELABORATORE ELETTRONICO

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

UNA GERARCHIA DI MACCHINE

Struttura del calcolatore

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Fondamenti di Informatica

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Problemi, algoritmi, calcolatore

Il concetto di calcolatore e di algoritmo

Il calcolatore universale, origini e nuovi paradigmi

Fondamenti di programmazione e Laboratorio di introduzione alla programmazione (modulo 1)

Macchina di Turing Universale

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

CAPITOLO 1 CENNI STORICI

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

La suddivisione lezione/esercitazione è orientativa Martedì Lezione Aula A4 Martedi Esercitazione Aula A2 Mercoledì Laboratorio

Logica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

L architettura del calcolatore

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Macchina Astratta: struttura e realizzazione.

Principio di composizione delle MT

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Concetti Introduttivi. Il Computer

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Programmazione modulare

Organizzazione strutturata

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

ALGORITMI: PROPRIETÀ FONDAMENTALI

Lezione 15. L elaboratore Elettronico

Introduzione. Corso di Fondamenti di Informatica

Linguaggi di Programmazione

Macchine Astratte. Luca Abeni. February 22, 2017

Concetti di base di informatica

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Cosa è l Informatica?

Parole note, nuovi significati: linguaggio, determinismo e infinito

PARTE III MACCHINE A REGISTRI

Architettura dei calcolatori e Software di sistema

PARTE III MACCHINE A REGISTRI

LABORATORIO DI INFORMATICA

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Algoritmi e Linguaggi

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Elementi di Informatica e Programmazione

Concetti di base dell ICT

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

La macchina di Von Neumann

Informatica Teorica. Macchine a registri

Macchine Astratte (anche dette Macchine Virtuali)

The easiest way to tell the di erence between hardware and software is to kick it. If it hurts your toe, it is hardware.

Lezione 1: problemi, modelli di calcolo, algoritmi

PARTE III MACCHINE A REGISTRI

Elaborazione dell informazione

Linguaggi di programmazione

Componenti e connessioni. Capitolo 3

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Fondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:

Fondamenti Teorici e Programmazione Modulo A: Elementi di Programmazione Corso di Laurea in Informatica Umanistica a.a. 2013/2014

Architettura di un calcolatore

Linguaggi di Programmazione

Introduzione al funzionamento di un calcolatore elettronico

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer

MATEMATICA INDICATORE DISCIPLINARE

È una notazione con cui è possibile descrivere gli algoritmi.

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

PIANI DI STUDIO MATEMATICA

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Dispensa di Informatica II.1

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Laboratorio di Informatica

DIFFUSIONE APPLICAZIONI INFORMATICHE

Marta Capiluppi Dipartimento di Informatica Università di Verona

Parte I.5 Cenni alla computazione

Fondamenti dell informatica

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Annamaria Bria 1

Programmazione di INFORMATICA e Laboratorio

Linguaggi di programmazione

Teoria della Calcolabilità!

Computer e Programmazione

Il modello di Von Neumann

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

La tesi di Church-Turing

Macchine di TURING. Alan Mathison Turing ( )

Transcript:

L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio macchina) 1 L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Vincolo di realizzabilità: se l automa è fatto di parti, queste sono in numero finito ingresso e uscita devono essere denotabili attraverso un insieme finito di simboli. 2 1

L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Realizzazione: 1) mediante congegni meccanici macchina aritmetica (1649) di Blaise Pascal macchina analitica di Charles Babbage (1792-1871) 3 L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Realizzazione: 2) mediante un modello matematico funzionale (Hilbert, (1842-1943), Church, Kleene) operazionale (Turing, 1912-1954) sistemi di riscrittura (Post, Markov,..). 4 2

PERCHE I MODELLI MATEMATICI Macchine diverse potrebbero avere diversa capacità di risolvere problemi. Una macchina potrebbe essere più potente di un altra E NOI DOBBIAMO SAPERLO Se neanche la macchina più potente riesce a risolvere un problema, potrebbero esserci PROBLEMI NON RISOLUBILI 5 GERARCHIA DI MACCHINE macchine combinatorie macchine (automi) a stati finiti macchina a stack macchina di Turing TESI DI CHURCH-TURING Non esiste alcun formalismo capace di risolvere una classe di problemi più ampia della Macchina di Turing 6 3

LA MACCHINA DI TURING Formalmente definita dalla quintupla: A, S, mfn, sfn, dfn dove A = insieme finito dei simboli di ingresso e uscita S = insieme finito degli stati (di cui uno è HALT) mfn: A S A (funzione di macchina) sfn: A S S (funzione di stato) dfn: A S D = {Left,Right,None} (funzione di direzione) 7 LA MACCHINA DI TURING Un nastro (illimitatamente espandibile) rappresenta il deposito dei dati (memoria). T.M. 8 4

LA MACCHINA DI TURING La TM è una macchina capace di: leggere un simbolo dal nastro scrivere sul nastro il simbolo specificato da mfn() transitare in un nuovo stato interno specificato da sfn() spostarsi sul nastro di una posizione nella direzione indicata da dfn() Quando raggiunge lo stato HALT, la macchina si ferma. 9 LA MACCHINA DI TURING E CPU REALI In pratica: leggere / scrivere un simbolo dal / sul nastro corrisponde a: lettura / scrittura dalla / sulla memoria RAM / ROM transitare in un nuovo stato interno nuova configurazione dei registri della CPU spostarsi sul nastro di una (o più) posizioni scelta della cella di memoria su cui operare (indirizzo contenuto nel RI) 10 5

RISOLVERE PROBLEMI CON LA T.M. Risolvere un problema con la Turing Machine richiede quindi di: definire una opportuna rappresentazione dei dati iniziali sul nastro definire la parte di controllo, cioè le tre funzioni: mfn() sfn() dfn() in modo da rendere disponibile sul nastro, alla fine, la rappresentazione della soluzione. 11 ESEMPIO: RICONOSCERE LE PALINDROMI Problema: riconoscere le palindromi (di cifre binarie) 1 0 1 1 0 1 Soluzione: a) definire un algoritmo b) programmarlo sulla Turing Machine 12 6

ESEMPIO: RICONOSCERE LE PALINDROMI Problema: riconoscere le palindromi (di cifre binarie) 0 1 1 0 1 Un possibile algoritmo leggere il primo simbolo a sinistra, ricordare se è 1 o 0 e marcare tale casella con spostarsi sull ultimo simbolo e leggerlo se è diverso dal primo (che qui era 1, ndr), scrivere E (errore) e terminare (non è il nostro caso) 13 ESEMPIO: RICONOSCERE LE PALINDROMI Problema: riconoscere le palindromi (di cifre binarie) 0 1 1 0 Un possibile algoritmo (segue) altrimenti, marcare tale casella con e tornare indietro fino al primo a sinistra e ripetere il controllo sulla stringa più corta rimasta (procedendo a ritroso) Alla fine.. quando non ci sono più cifre fra, scrivere T (true) e finire. 14 7

ESEMPIO: RICONOSCERE LE PALINDROMI Evoluzione (1) Situazione iniziale 1 0 1 1 0 1 e poi via via 0 1 1 0 1 0 1 1 0 1 (segue) 0 1 1 0 15 ESEMPIO: RICONOSCERE LE PALINDROMI Evoluzione (2) Situazione e poi: 0 1 1 0 0 1 1 0 1 1 0 1 1 0 (segue) 1 1 16 8

ESEMPIO: RICONOSCERE LE PALINDROMI Evoluzione (3) Situazione e poi: 1 1 1 1 1 1 (FINE) T 17 ESEMPIO: RICONOSCERE LE PALINDROMI Problema: riconoscere le palindromi (di cifre binarie) 1 0 1 1 0 1 Soluzione: a) definire un algoritmo b) programmarlo sulla Turing Machine, cioè... definire la parte di controllo data dalle tre funzioni mfn() sfn() dfn() 18 9

ESEMPIO: RICONOSCERE LE PALINDROMI DEFINIRE LA PARTE DI CONTROLLO Osservazione: le tre funzioni mfn() sfn()dfn()hanno il medesimo dominio A x S A = insieme finito dei simboli di ingresso e uscita S = insieme finito degli stati (di cui uno è HALT) dove A e S sono insiemi finiti. Quindi, le tre funzioni possono essere definite in forma estensionale tramite tabelle, elencandone tutti i possibili valori. 19 ESEMPIO: RICONOSCERE LE PALINDROMI Nel nostro caso: A = {0,1,,E,T} S = {HALT,s0,s1,s2,s3,s4,s5} (stato iniziale: S1) Configurazione iniziale del nastro: 1 0 1 1 0 1 20 10

ESEMPIO: RICONOSCERE LE PALINDROMI mfn s0 s1 s2 s3 s4 s5 0 0 0 0 E 1 1 1 1 E T T T 21 ESEMPIO: RICONOSCERE LE PALINDROMI mfn s0 s1 s2 s3 s4 s5 0 0 0 0 E 1 1 1 1 E T T T sfn s0 s1 s2 s3 s4 s5 0 s0 s2 s2 s3 s0 HALT 1 s0 s3 s2 s3 HALT s0 s1 HALT s4 s5 HALT HALT 22 11

ESEMPIO: RICONOSCERE LE PALINDROMI mfn s0 s1 s2 s3 s4 s5 0 0 0 0 E 1 1 1 1 E T T T sfn s0 s1 s2 s3 s4 s5 0 s0 s2 s2 s3 s0 HALT 1 s0 s3 s2 s3 HALT s0 s1 HALT s4 s5 HALT HALT dfn s0 s1 s2 s3 s4 s5 0 L R R R L N 1 L R R R L L R N L L N N 23 ESEMPIO: RICONOSCERE LE PALINDROMI Configurazione finale del nastro: T 24 12

MACCHINE SPECIFICHE Una volta definita la parte di controllo, la Macchina di Turing è capace di risolvere un dato problema (risolubile).....ma così facendo, essa è specifica di quel problema! Siamo circondati da macchine specifiche: calcolatrici lavastoviglie, videoregistratori, videogiochi orologi, telecamere,... 25 MACCHINE SPECIFICHE Conviene fare macchine specifiche? sì, per usi particolari e mercati di massa no, se vogliamo una macchina di uso generale con cui risolvere ogni problema (risolubile) 26 13

MACCHINE UNIVERSALI Una volta definita la parte di controllo, cioè l algoritmo necessario, la Macchina di Turing è capace di risolvere un dato problema (risolubile) Finora, l algoritmo era cablato nella macchina..e se invece fosse sul nastro, e la macchina se lo andasse a prendere? 27 MACCHINA DI TURING UNIVERSALE Una Macchina di Turing la cui parte di controllo (cioè il cui algoritmo cablato ) consiste nel leggere dal nastro una descrizione dell algoritmo richiesto E una macchina UNIVERSALE: senza modifiche alla sua struttura, può essere istruita per risolvere un qualunque problema (risolubile) Una macchina programmabile 28 14

MACCHINA DI TURING UNIVERSALE Ma leggere dal nastro una descrizione dell algoritmo richiesto richiede di: saper descrivere tale algoritmo il che richiede un qualche linguaggio e una macchina che lo interpreti! Dunque... la Universal Turing Machine (UTM) è l interprete di un linguaggio! 29 MACCHINA DI TURING UNIVERSALE Una Universal Turing Machine (UTM) modella il concetto di elaboratore di uso generale ( general purpose ) Una macchina che va a cercare le istruzioni da compiere (fetch).. le interpreta (decode).. e le esegue (execute) 30 15

MACCHINA DI TURING UNIVERSALE E MACCHINA DI VON NEUMAN Una Universal Turing Machine (UTM) è in grado di elaborare prendendo dati e algoritmo dal nastro e scrivendo sul nastro i risultati Dunque, una UTM opera solo da/verso il nastro (astrazione della memoria): non esiste il concetto di mondo esterno Ingresso/Uscita 31 MACCHINA DI TURING UNIVERSALE E MACCHINA DI VON NEUMAN Dunque, la macchina di Von Neumann è modellata dalla UTM per ciò che attiene alla computazione... ma prevede anche la dimensione dell interazione 32 16

LINGUAGGI DI PROGRAMMAZIONE Ad esempio, il linguaggio di programmazione C è costituito da un linguaggio di computazione (il C vero e proprio) un linguaggio di interazione (I/O) fornito come allegato, sotto forma di librerie standard 33 17