Macchine a registri RAM (Random Access Machines)

Размер: px
Начинать показ со страницы:

Download "Macchine a registri RAM (Random Access Machines)"

Транскрипт

1 Macchine a registri RAM (Random Access Machines) Introdotte da Shepherdson e Sturgis nel 1963 per sviluppare la teoria della calcolabilità con un modello astratto di un reale calcolatore (macchina di von Neumann) Memoria costituita da un numero fnito ma arbitrario di celle (registri) direttamente indirizzabili: R 1, R 2,..., R n Una cella può contenere un intero non negativo Registri speciali: accumulatore R 0 contatore istruzioni CI Nastri di ingresso e di uscita Unità centrale in grado di eseguire semplici istruzioni logico-aritmetiche ALU R1 R2 R3 ACCUMULATORE... CONT. ISTRUZIONI Repertorio istruzioni LOAD, STORE: trasferimenti da registri ad accumulatore e viceversa READ, WRITE: trasferimenti da nastro di input a registri e da registri a nastro di output ADD, SUB, MULT, DIV: operazioni aritmetiche tra accumulatore e registri; il risultato resta nell'accumulatore JGTZ, JEQZ: salti condizionati dal contenuto dell' accumulatore JUMP: salto incondizionato HALT: terminazione U n programma non e' contenuto in memoria ma è 'cablato' (una macchina - un programma).

2 Es. Programma per il calcolo di x y READ 1 lettura di x dal nastro di ingresso READ 2 lettura di y dal nastro di ingresso LOAD =1 STORE 3 inizializzazione del risultato 5 LOAD 2 JEQZ 14 fne ciclo LOAD 1 MULT 3 STORE 3 R[3] = x * R[3] LOAD 2 SUB =1 STORE 2 JUMP 5 14 WRITE 3 stampa del risultato HALT operando: etichetta: LOAD [ = * ] operando STORE [ * ] operando ADD [ = * ] operando SUB [ = * ]operando MULT [ = * ]operando DIV [ = * ]operando READ [ * ] operando WRITE [ = * ]operando JUMP etichetta JGTZ etichetta JEQZ etichetta HALT etichetta Sintassi delle istruzioni n : indirizzamento diretto al registro n *n : indirizzamento indiretto al registro R[n] =n : operando immediato numero di un'istruzione ADD n R[0] := R[0]+R[n] CI := CI+1 ADD *n R[0] := R[0]+R[R[n]] CI := CI+1 ADD =n R[0]:= R[0]+n CI:=CI+1 Semantica delle istruzioni JGTZ m if R[0] > 0 then CI := m else CI := CI+1

3 Modelli di costo per RAM Modello a costi uniformi - costo unitario per l'esecuzione di ogni istruzione Es. Eseguire il programma per calcolare x y costa O(y); infatti le 9 istruzioni del ciclo vengono eseguite y volte Critiche: - calcolare 10 x 10 costa quanto calcolare x accedere ad un registro su 10 costa quanto accedere ad un registro su Modello a costi logaritmici - l'elaborazione di un intero n ha costo l(n) - l'accesso al registro i ha costo l(i) l(n) = 1 se n = 0 l(n) = log 2 n +1 se n > 0 così l(n) indica il numero di bits necessari a rappresentare n in base 2. Es. Per eseguire l'istruzione ADD *3 si paga l(3) + l(r[3]) (per accedere a due registri) + l(r[r[3]]) + l(r[0]) (per eseguire della somma). Es. Eseguire il programma per calcolare x y con modello a costi logaritmici. READ 1 l(1)+l(x) O(log x) READ 2 l(2)+l(y) O(log y) LOAD =1 l(1) O(1) STORE 3 l(3)+l(1) O(1) 5 LOAD 2 l(2)+l(y) O(log y) JGTZ 14 l(y) O(log y) LOAD 1 l(1)+l(x) O(log x) MULT 3 l(3)+l(x)+l(xy) O(log x + y log x) STORE 3 l(3)+l(xy) O(y log x) LOAD 2 l(2)+l(y) O(log y) SUB =1 l(1)+l(y) O(log y) STORE 2 l(2)+l(y) O(log y) JUMP 5 1 O(1) 14 WRITE 3 l(3)+l(xy) O(y log x) HALT 1 O(1) La porzione di codice dentro la cornice viene eseguita O(y) volte Costo di esecuzione totale: O(y2 log x).

4 Calcolabilità di funzioni mediante RAM e relazione tra RAM e MT Def. Una funzione f: N n N è calcolabile da una RAM se esiste un programma P tale che: - se f(x1,..., xn) = y, allora P, inizializzato con x1,...,xn sul nastro di input, termina con y sul nastro di output - se f(x1,..., xn) non e' defnita, allora P non termina Teorema. Sia M una MT con nastro semi infnito ed alfabeto di nastro {1, 0}. Esistono una RAM ed un programma P tali che, se per M vale che q 0 x * q F y in t passi, allora la RAM, con la stringa x nelle celle 2,..., x +1, al termine della computazione ha la stringa y nelle celle 2,..., y +1. Inoltre se M compie t passi allora la RAM simula t passi di M in tempo O(t log t) nel modello a costi logaritmici. Dim. Usiamo il registro 1 per indirizzare il registro che corrisponde alla cella letta dalla testina di M e quindi stabiliamo una corrispondenza tra la cella i del nastro di M ed il registro i+1 della RAM. All'inizio il registro 1 della RAM contiene il valore 2 (il registro 2 della RAM corrisponde alla prima cella letta da M all inizio del calcolo). Per ogni stato qi di M, P contiene due sequenze di istruzioni corrispondenti alle due transizioni δ(qi,1) e δ(qi,0). Esempio. Se δ(qi, 0) = <q2, 1, d> e δ(qi, 1)=<q3, 0, s> allora P contiene il seguente frammento:... qi LOAD *1 acquisizione del contenuto del nastro JGTZ qi' lettura di un 1 o di uno 0? LOAD =1 STORE *1 scrittura di un 1 sul nastro LOAD 1 ADD =1 STORE 1 movimento a destra della testina JUMP q2 aggiornamento dello stato qi' LOAD =0 STORE *1 scrittura di uno 0 sul nastro LOAD 1 SUB =1 STORE 1 movimento a sinistra della testina JUMP q3 aggiornamento dello stato... Ogni passo di M e' simulato da al più 8 istruzioni ognuna con costo O(log tmax), dove tmax è il massimo numero di celle usate da M. Se M esegue t passi allora tmax t+1. Costo complessivo O(t log t). Un analogo teorema puo' essere dimostrato per una macchina di Turing multinastro o con alfabeto di nastro qualunque.

5 Teorema. Sia P un programma di una RAM che calcola una funzione f: N n N. Esiste una MT M tale che, se sul nastro di input sono memorizzati in binario gli interi x 1,..., x n, allora M termina con la rappresentazione binaria di f(x 1,..., x n ) sul nastro di output se f(x 1,..., x n ) e' defnita mentre se f(x 1,..., x n ) non e' defnita M non termina. Inoltre se la computazione della RAM ha costo t nel modello a costi logaritmici allora M la simula in O(t2) passi. Dim. M ha tre nastri di lavoro, più uno di input ed uno di output. Sul nastro 1 sono memorizzati in binario i dati memorizzati nei registri effettivamente usati dalla RAM, preceduti dal proprio indirizzo rappresentato in binario, cioè: #i 1 #R[i 1 ]#i 2 #R[i 2 ]#i 3 #R[i 3 ]... #i m #R[i m ]. Sul nastro 2 è rappresentato il contenuto dell'accumulatore. Il nastro 3 è usato come memoria di lavoro. (Fig. 6.2 a pag. 260) Per ogni istruzione del programma della RAM, M ha un insieme di stati per eseguire l'istruzione. Per istruzioni RAM che modifcano il contenuto della memoria, STORE, READ: M trascrive sul nastro 3 il contenuto del nastro 1 a destra del registro da modifcare, se c'è; poi esegue l'operazione modifcando sul nastro 1 il contenuto del registro da modifcare; infne ricopia sul nastro 1, a destra della cella modifcata, il contenuto del nastro 3 che non è stato modifcato. Per istruzioni RAM che non modifcano il contenuto della memoria, LOAD, ADD, SUB, MULT, DIV, WRITE: M cerca sul nastro 1 il registro su cui deve operare e poi esegue l'operazione tra il contenuto del registro e l'accumulatore od il nastro di output, modifcando di conseguenza il contenuto dell'accumulatore o del nastro di output. Per istruzioni RAM di salto, JUMP, JGTZ, JZERO, HALT: M controlla se il contenuto dell'accumulatore verifca le condizioni di salto e, se si, esegue una opportuna transizione di stato.

6

7 Analisi di complessità. i) Ogni sequenza di transizioni relativa ad una singola operazione di RAM costa ad M, nel caso peggiore, un tempo dell ordine della massima lunghezza lungmax1 del nastro 1 e se la RAM opera con costo totale t allora vediamo che lungmax1 t. Infatti nel modello a costi logaritmici: se sul nastro 1 è presente l' indirizzo i vuol dire che la RAM ha acceduto almeno una volta al registro Ri e quindi ha pagato almeno una volta log i; d'altro canto l'indirizzo i occupa sul nastro 1 proprio log i celle se sul nastro 1 compare il contenuto del registro i allora la RAM ha pagato almeno una volta log(r[i]); d'altro canto R[i] occupa sul nastro 1 proprio log(r[i]) celle ii) Se la RAM opera con costo totale t le operazioni che essa esegue sono al più t. In conclusione la MT M opera in tempo O(t lungmax1) = O(t2). NOTA 1 Tutto ciò che si può fare (calcolo di funzioni, riconoscimento o accettazione di linguaggi, ecc.) con una MT si può fare anche con una RAM e viceversa (adottando le opportune convenzioni per la rappresentazione dell input e dell output). Considerato che le RAM corrispondono a semplici programmi Assembler e chiaro che il loro potere computazionale coincide con quello dei linguaggi di programmazione ad alto livello, in quanto un compilatore traduce un programma di alto livello in un programma assembler. Tesi di Church-Turing: tutti i modelli di calcolo introdotti per defnire la calcolabilità hanno al massimo lo stesso potere computazionale delle MT. NOTA 2 Una MT ed una RAM con modello a costi logaritmici possono simularsi a vicenda in tempo polinomiale. Quindi per stabilire se un problema ammette una soluzione calcolabile in tempo polinomiale possiamo indifferentemente far riferimento ad una MT o ad una RAM a costi logaritmici. Tesi di Cobham Tutti i modelli di calcolo introdotti per defnire la calcolabilità in tempo polinomiale ("trattabilita' computazionale") hanno al più lo stesso potere computazionale delle MT operanti in tempo polinomiale.

8 Macchine a registri elementari (MREL) Modello di calcolo più elementare delle RAM ma dotato dello stesso potere computazionale di una MT o di un programma C. Semplifcazione spinta all'estremo limite. Semplifcazioni: - eliminazione di nastri di ingresso e uscita - eliminazione dell'accumulatore - eliminazione dell'indirizzamento indiretto Convenzioni: - all'inizio l'input e' nei registri 1,..., n - tutti gli altri registri contengono 0 - al termine l'output e' nel registro 1 - la macchina si arresta se si richiede un salto ad un'istruzione che non esiste (ad esempio all istruzione 0). - Due sole istruzioni di incremento/decremento del contenuto di registri: R[i] := R[i] + 1 R[i] := R[i] 1 (se il contenuto e' 0 il decremento lascia 0). - Una sola istruzione di salto: IF R[i] = 0 THEN GOTO n (altrimenti prosegui). Es. programma MREL per il calcolo della funzione f(x,y)=x+y: 1 IF R[2] = 0 THEN GO TO 0 2 R[2] := R[2] R[1] := R[1] IF R[3] = 0 THEN GO TO 1 (il fatto che R[3]=0 ci permette di simulare un salto incondizionato) Es. programma MREL che simula le seguenti istruzioni di una RAM: è il seguente: LOAD 1 ADD 2 STORE 1 1 IF R[2] = 0 THEN GO TO 6 2 R[2] := R[2] R[1] := R[1] R[3] := R[3] IF R[4] = 0 THEN GO TO 1 6 IF R[3] = 0 THEN GO TO 0 7 R[3] := R[3] 1 // rimetto in R[2] il valore originale 8 R[2] := R[2] IF R[4] = 0 THEN GO TO 6

9 Non è diffcile convincersi che, poichè ogni passo di una RAM può essere sostituito da uno o più passi di una MREL, vale il seguente risultato. Teorema. Ogni funzione f: N N calcolabile con una RAM e calcolabile con una MREL e viceversa. Aritmetizzazione delle MREL Stabiliamo una corrispondenza biunivoca, detta aritmetizzazione (o godelizzazione), tra MREL e l'insieme dei numeri naturali N. Ad ogni istruzione facciamo corrispondere un intero: c(r[i] := R[i] + 1) = 3 (i - 1) + 1 c(r[i] := R[i] - 1) = 3 (i - 1) + 2 c(if R[i] = 0 THEN GOTO n) = 3 J(i-1,n) (dove J e' la funzione biunivoca: J(x,y) = [(x+y)(x+y+1)]/2+x+1, cioè la funzione coppia di Cantor con la piccola modifca: J(0,0) = 1). Tecnicalità: aggiungiamo un'istruzione NOPE (che non esegue nessuna operazione) cui facciamo corrispondere 0. Allora ad un programma di k istruzioni: PROG = istr 1, istr 2,..., istr k facciamo corrispondere: c(prog) = 2 c(istr 1) 3 c(istr 2)... p k c(istrk) = < c(istr1 ), c(istr 2 ),., c(istr k ) > dove p 1 e' 2 e p k e' il k-esimo numero primo. Es. Al programma IF R[2] = 0 THEN GOTO 0 R[2] := R[2] - 1 R[1] := R[1] + 1 IF R[3] = 0 THEN GOTO 1 facciamo corrispondere l'intero All'intero 9800 corrisponde la decomposizione e quindi il programma: IF R[1] = 0 THEN GOTO 0 NOPE R[1] := R[1] - 1 R[1] := R[1] 1 All'intero 600 corrisponde la decomposizione e quindi il programma: IF R[1] = 0 THEN GOTO 0 R[1] := R[1] + 1 R[1] := R[1] 1 che calcola la funzione che vale 0 in 0 ed è indefnita altrove.

10

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Подробнее

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Подробнее

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Подробнее

La Macchina RAM Shepherdson e Sturgis (1963)

La Macchina RAM Shepherdson e Sturgis (1963) La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni

Подробнее

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Подробнее

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Подробнее

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

Подробнее

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Подробнее

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Подробнее

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Подробнее

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Подробнее

12. MACCHINE DI TURING E CALCOLABILITA

12. MACCHINE DI TURING E CALCOLABILITA 12. MACCHINE DI TURING E CALCOLABILITA 12.1 Funzioni calcolabili secondo Turing 12.2 Insiemi e linguaggi decidibili e semidecidibili 12.3 Macchine di Turing multinastro e nondeterministiche 12.4 Macchina

Подробнее

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Подробнее

Teoria della Calcolabilità!

Teoria della Calcolabilità! Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

Подробнее

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani ([email protected])

Подробнее

Macchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni.

Macchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni. Algoritmi e Strutture Dati Macchina RAM Nastro di ingresso Modelli di calcolo e metodologie di analisi Contatore istruzioni Programm a Accumulatore Unità centrale M[0] M[1] Nastro di uscita Basato su materiale

Подробнее

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI 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

Подробнее

La tesi di Church-Turing

La tesi di Church-Turing ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo

Подробнее

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Подробнее

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici

Подробнее

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Подробнее

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Подробнее

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER

STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER 1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono

Подробнее

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Подробнее

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Подробнее

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Подробнее

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Подробнее

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Подробнее

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

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore

Подробнее

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Подробнее

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

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29 Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,

Подробнее

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Подробнее

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Подробнее

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

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

Подробнее

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Подробнее

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Fondamenti Teorici Antonio Pescapè e Marcello Esposito Parte Seconda v2.0 Agenda Modello di Von Neumann Algoritmo del Processore Linguaggio Macchina e Linguaggio Assembler Hardware e Software Compilatori

Подробнее

La macchina di Von Neumann

La macchina di Von Neumann Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Подробнее

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Подробнее

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Подробнее

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Подробнее

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Подробнее

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Подробнее

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Подробнее

Le parole dell informatica: algoritmo e decidibilità

Le parole dell informatica: algoritmo e decidibilità Le parole dell informatica: algoritmo e decidibilità Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico dell Informatica

Подробнее

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

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando

Подробнее

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Подробнее

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

Подробнее

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Подробнее

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Подробнее

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito ([email protected]) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Подробнее

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

Подробнее

LA MEMORIA NEL CALCOLATORE

LA MEMORIA NEL CALCOLATORE Tipi di memorie (1) Rappresenta il supporto fisico, il dispositivo su cui sono immagazzinate le informazioni (dati e programmi) ROM (Read Only Memory) 1-2 MByte Cache 1 MByte di sola lettura contiene programmi

Подробнее

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer? Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Cos'è un computer? 3 Cos'è un computer? E' un dispositivo in grado di Elaborare

Подробнее

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Подробнее

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Подробнее

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Подробнее

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Подробнее

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

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Подробнее

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Подробнее

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

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Подробнее

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Подробнее

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Подробнее

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Подробнее

Architettura dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Architettura dei calcolatori 2 Cos'è un computer?

Подробнее