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

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

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

Struttura del calcolatore

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Macchine sequenziali. Automa a Stati Finiti (ASF)

Il concetto di calcolatore e di algoritmo

Macchine di Turing: somma di due numeri

Componenti e connessioni. Capitolo 3

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

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

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

AUTOMI A STATI FINITI. G. Ciaschetti

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

PARTE III MACCHINE A REGISTRI

Informatica Teorica. Macchine a registri

Architettura di un computer

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

Architettura dei calcolatori

Linguaggi di programmazione e astrazione

Macchine sequenziali

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.)

LABORATORIO DI INFORMATICA

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Le Macchine di Turing

Cosa è l Informatica?

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Definizione di Grammatica

Dall algoritmo al programma

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

Architettura hardware

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Memoria Secondaria o di Massa

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Varianti Macchine di Turing

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Linguaggi Regolari e Linguaggi Liberi

Sintesi di Reti Sequenziali Sincrone

Architettura di Von Neumann

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Diagrammi a blocchi 1

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

I.3 Porte Logiche. Elisabetta Ronchieri. Ottobre 13, Università di Ferrara Dipartimento di Economia e Management. Insegnamento di Informatica

Concetti Introduttivi. Il Computer

Algoritmi e soluzione di problemi

Linguaggi di programmazione

Funzioni booleane. Vitoantonio Bevilacqua.

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Il processore. Istituzionii di Informatica -- Rossano Gaeta

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Richiami di Algebra di Commutazione

L interesse nella macchina di Turing

Linguaggi Regolari e Linguaggi Liberi

Calcolatori Elettronici A a.a. 2008/2009. RETI SEQUENZIALI: ESERCIZI Massimiliano Giacomin

Algebra di Boole X Y Z V. Algebra di Boole

Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr

Tipologie di macchine di Turing

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

I.4 Rappresentazione dell informazione

Elementi di Informatica e Programmazione

Corso di Informatica di Base

LA METAFORA DELL UFFICIO

Diagrammi a blocchi 1

Teoria dell Informazione

un insieme finito di segnali d uscita U (nell ascensore U={stare fermo, salire, scendere})

Modulo 1 Concetti di base della Tecnologia dell Informazione

Algebra di Boole Algebra di Boole

Algoritmi e Principi dell Informatica

Sintesi di Reti sequenziali Sincrone

Esercitazioni di Reti Logiche. Lezione 4

Transcript:

ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23

UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di Turing Macchine di tipo differente hanno diversa capacità di risolvere problemi. Un problema può essere non risolubile ad un dato livello della gerarchia, ma risolubile a quello successivo. Problemi non risolubili in assoluto? Andrea Prevete, UNINA2 23

LE MACCHINE COMBINATORIE Una macchina combinatoria è formalmente definita da una tripla: <I, O, ft> I ft O dove I = insieme finito dei simboli di ingresso O = insieme finito dei simboli di uscita ft: I -> O (funzione di trasferimento) Esempio: le porte logiche e le funzioni in genere (half adder, full adder, etc) Andrea Prevete, UNINA2 23

LE MACCHINE COMBINATORIE Esempio: z = AND(x, y) Dove x, y, z sono variabili booleane (, ). Vogliamo che z= sse x=y=. I O Avremo: I={(,) (,) (,) (,)} x y z O={, } ft: Simbolo per una porta AND: Andrea Prevete, UNINA2 23

LE MACCHINE COMBINATORIE Esempio: x y HALF-ADDER s r I O Dove x, y, s, r sono variabili booleane (, ). Vogliamo che s e r valgano rispettivamente la cifra di peso e quella di peso della somma di x ed y. Avremo: I={(,) (,) (,) (,)} O={(,) (,) (,) (,)} ft: x y s r Andrea Prevete, UNINA2 23

LE MACCHINE COMBINATORIE Risolvere problemi con una macchina combinatoria comporta enumerare in modo esplicito tutte le possibili configurazioni d ingresso, e indicare in corrispondenza il valore di uscita. Essendo un dispositivo puramente combinatorio è inadatto a risolvere problemi che richiedono una memoria interna (riconoscimento di sequenze, somme di numeri forniti in successione, etc.) Andrea Prevete, UNINA2 23

GLI AUTOMI A STATI FINITI Il modo più semplice per introdurre macchine dotate di memoria è definire un automa con un numero finito di stati interni. Un automa a stati finiti è definito dalla quintupla: <I, O, S, fu, fsp> dove I = insieme finito dei simboli di ingresso O = insieme finito dei simboli di uscita S = insieme finito degli stati fu: I x S -> O (funzione di uscita) fsp: I x S -> S (funzione di stato prossimo) Andrea Prevete, UNINA2 23

GLI AUTOMI A STATI FINITI I: ^ ^ ^ O: I={, } O={, } S={s, s} S I O S I S + fu: s fps: s s s s s s s Andrea Prevete, UNINA2 23

GLI AUTOMI A STATI FINITI IL MODELLO DI MEALY: I: ^ ^ ^ O: / / S S / / Andrea Prevete, UNINA2 23

GLI AUTOMI A STATI FINITI IL MODELLO DI MOORE: I: ^ ^ ^ O: S/ S/ S/ Andrea Prevete, UNINA2 23

GLI AUTOMI A STATI FINITI Poiché l uscita dipende ora anche dallo stato, l ASF è un automa intrinsecamente dotato di una memoria interna che può quindi influenzare le risposte date dall automa anche a parità di dati d ingresso. Limiti: è un dispositivo con memoria finita e definitivamente fissata a livello di progetto, quindi inadatto a risolvere quei problemi che non consentono di limitare a priori la lunghezza delle sequenze d ingresso di cui tenere memoria. Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Le macchine di Turing consentono di superare il suddetto limite della memoria. Esistono di esse numerose formalizzazioni tutte equivalenti dal punto di vista della potenza computazionale. In una versione fra le più semplici ma molto intuitiva una macchina di Turing può essere pensata come - Una memoria lineare potenzialmente infinita (..la metafora del nastro illimitato) - Un insieme Q di quadruple del tipo: - (s i a l a k s j ) con s i e s j appartenti ad un insieme S={s.. s n } di stati interni della macchina, a l ed a k ad un insieme A={a.. a m } di possibili simboli di input/output. Le quadruple possono anche presentarsi nelle forma (s i a l a k s j ) - o (s i a l a k s j ) + con il significato che vedremo di seguito - Due variabili di stato, s ed a, che tengono conto dello stato interno attuale e della posizione attuale di lettura in memoria - Un sistema di controllo che cerca di far corrispondere alla coppia <s a> la prima parte di una delle quadruple di Q, <s i a l >, modificando lo stato interno e scrivendo in memoria in ragione di quanto riportato dalla seconda parte della quadrupla, <a k s j >. Se la quadrupla è seguita da un suffisso la posizione di lettura in memoria sarà spostata di una posizione a destra ( + ) o a sinistra ( - ). Andrea Prevete, UNINA2 23

LA METAFORA DEL NASTRO Un nastro (illimitatamente espandibile a sinistra ed a destra) rappresenta il deposito dei dati (memoria) TM La Macchina di Turing è munita di una testina di lettura/scrittura che può: leggere un simbolo dal nastro scrivere sul nastro il simbolo specificato da una quadrupla transitare in un nuovo stato interno, sempre seguendo le specifiche di una quadrupla spostarsi sul nastro di una posizione nella direzione indicata dall eventuale suffisso della quadrupla Quando non ci sono più quadruple per cui esiste un match con lo stato e l input corrente, la macchina si ferma. Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Risolvere un problema con la MdT significa quindi: definire una opportuna rappresentazione dei dati iniziali sul nastro definire la parte di controllo, cioè l insieme delle quadruple, in modo da rendere disponibile sul nastro, alla fine del computo, una rappresentazione della soluzione. Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Consideriamo il seguente insieme di quadruple: s s s ƀ NOP NOP NOP s s s2 + + - NOP è uno speciale simbolo ad indicare che non sarà eseguita alcuna operazione di scrittura, ƀ è un altro simbolo speciale che sta ad identificare una cella vuota. s2 s2 s2 ƀ s2 s4 s3 - - Allora le quadruple elencate definiscono un algoritmo per l incremento unitario di una s3 s3 NOP NOP s3 s3 - - stringa binaria! s3 ƀ NOP s4 + Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Ecco un esempio di computo: s s s s s3 s Andrea Prevete, UNINA2 23 s2 s2 s2 s3 s4

LE MACCHINE DI TURING Esistono macchine più potenti delle Macchine di Turing? TESI DI CHURCH-TURING Non esiste alcun formalismo capace di risolvere una classe di problemi più ampia di quella risolta da una Macchina di Turing. Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Una volta definita la parte di controllo, una MdT è in grado di risolvere un dato problema. E specifica per quel problema. È possibile pensare ad una Macchina di Turing Universale, applicabile cioè a qualsiasi problema risolubile? Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Finora, l algoritmo realizzato da una MdT era cablato nella macchina (DOVE??) E se invece fosse sul nastro, e la macchina se lo andasse a prendere? Come dovrebbe essere strutturata una simile MdT? Avremmo una Macchina di Turing Universale Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Dovrebbe essere una Macchina di Turing la cui parte di controllo (cioè l algoritmo cablato.. quindi l insieme delle quadruple!) consista nel leggere dal nastro una descrizione dello specifico algoritmo richiesto. Una tale macchina può essere adattata per risolvere un qualunque problema (risolubile) senza modifiche alla sua struttura. E, quindi, una macchina programmabile! Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING Cosa richiede questo? Saper descrivere l algoritmo richiesto. E per descrivere l algoritmo? Occorre un linguaggio... e una macchina che lo interpreti. Conclusione: la Macchina Universale di Turing è l interprete di un linguaggio! Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING MACCHINA DI TURING UNIVERSALE La UTM modella il concetto di elaboratore di uso generale ( general purpose ): una macchina che va a cercare le istruzioni da svolgere le interpreta... e le esegue. fetch decode execute Andrea Prevete, UNINA2 23

LE MACCHINE DI TURING In sintesi leggere / scrivere un simbolo dal / sul nastro transitare in un nuovo stato interno corrisponde a: lettura / scrittura dalla / sulla memoria RAM / ROM nuova configurazione dei registri della CPU spostarsi sul nastro di una (o più) posizioni scelta della cella di memoria su cui operare (indirizzo contenuto nell Address Register) Andrea Prevete, UNINA2 23

MACCHINA DI TURING UNIVERSALE E MACCHINA DI VON NEUMANN La UTM (che è una macchina astratta) modella in tutto la Macchina di Von Neumann (una macchina reale)? Una UTM elabora prendendo dati e algoritmo dal nastro e scrivendo sul nastro i risultati. Dunque, una UTM opera solo da/verso il nastro (astrazione della memoria interna): non esiste il concetto di mondo esterno! La UTM è dunque pura computazione: non modella la dimensione dell interazione che invece esiste nella macchina di Von Neumann. La macchina di Von Neumann possiede istruzioni di I/O, la UTM no. Andrea Prevete, UNINA2 23

THE END Andrea Prevete, UNINA2 23