PARTE III MACCHINE A REGISTRI

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

Download "PARTE III MACCHINE A REGISTRI"

Транскрипт

1 PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1

2 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson e Sturgis nel 1963 per sviluppare la teoria della calcolabilità con un modello di macchina che fosse un astrazione ragionevole di un calcolatore (macchina di von Neumann). Memoria costituita da un numero arbitrario di celle (registri) indirizzabili direttamente R[1], R[2],..., R[n] contenenti un intero positivo di un numero qualunque di cifre Registri speciali: contatore istruzioni (CI) accumulatore R[0] Nastri di ingresso e di uscita Unità centrale in grado di eseguire semplici istruzioni logico-aritmetiche 2

3 INPUT ALU R1 R2 R3 ACCUMULATORE... CONT. ISTRUZIONI OUTPUT 3

4 Repertorio istruzioni (tipiche di una macchina RISC) 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, REM: operazioni aritmetiche tra accumulatore e registri; il risultato resta nell'accumulatore JGTZ, JEQZ: salti condizionati in base al contenuto dell'accumulatore JUMP: salto incondizionato HALT: terminazione 4

5 Sintassi delle istruzioni LOAD [ = * ] operando -> operando: numero STORE [ * ] operando d ordine di registro ADD [ = * ] operando -> = operando: SUB [ = * ] operando operando immediato MULT [ = * ] operando -> * operando: DIV [ = * ] operando accesso indiretto REM [ = * ] operando READ [ * ] operando WRITE [ = * ] operando JUMP etichetta -> etichetta: numero JGTZ etichetta d ordine di istruzione JEQZ etichetta HALT etichetta 5

6 Semantica delle istruzioni (Esempi) ADD =n R[0]:= R[0]+ n CI:=CI+1 ADD n R[0] := R[0]+ R[n] CI := CI+1 ADD *n R[0] := R[0]+ R[R[n]] CI := CI+1 JGTZ m if R[0]>0 then CI := m else CI := CI+1 6

7 Programmi per RAM Il programma non è contenuto in memoria ma è cablato: ad ogni macchina corrisponde un programma. 7

8 ESEMPIO - Programma per il calcolo di xy 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 fine ciclo while? LOAD 1 MULT 3 STORE 3 LOAD 2 R[3] := x * R[3] SUB =1 STORE 2 JUMP 5 14 WRITE 3 stampa del risultato HALT 8

9 3.2 MODELLI DI COSTO PER RAM Modello a costi uniformi costo unitario per l'esecuzione di ogni istruzione ESEMPIO. Eseguire il programma per calcolare xy costa O(y); infatti le 9 istruzioni del ciclo vengono eseguite y volte Critiche: - moltiplicare due interi di 32 bit costa quanto moltiplicare due interi di 1024 bit - accedere ad una memoria di 1 kilobyte costa come accedere ad una memoria di 1 terabyte Vantaggi: il modello ha il pregio di essere molto semplice ed è quello più usato quando valutiamo il comportamento di programmi scritti in linguaggio ad alto livello 9

10 Modello a costi logaritmici I costi sono proporzionali al numero di bit degli operandi e al logaritmo del numero d ordine dei registri cui si accede Definiamo la seguente funzione (lunghezza in binario): l(n) = 1 se n=0 l(n) = (log n) +1 se n>0 - l'elaborazione di un intero n ha costo l(n) - l'accesso al registro i ha costo l(i) Vantaggi: la valutazione dei costi è più realistica dal punto di vista asintotico (operandi molto grandi, memoria molto grande Critiche: analisi più laboriosa 10

11 Per eseguire l'istruzione ADD 3 si paga: l (3) per accedere al registro 3 e l(r[3]) + l(r[0]) per eseguire la somma del contenuto del registro 3 e dell accumulatore. Per eseguire l'istruzione ADD *3 si paga: l(3) + l(r[3]) per accedere al registro indirizzato dal registro 3 più l(r[r[3]]) + l(r[0]) per eseguire la somma. 11

12 ESEMPIO - Valutazione 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) 12

13 NOTA BENE. In pratica in situazioni in cui: a) i dati hanno una dimensione prefissata (es: 36 bit) b) le dimensioni della memoria sono prefissate i due modelli coincidono. NOTA BENE. Se le operazioni aritmetiche hanno precisione arbitraria o se si rende necessario l'accesso a memoria secondaria, si deve fare uso di modelli di calcolo analoghi al modello a costi logaritmici anche nell analisi di complessità di algoritmi scritti in linguaggi ad alto livello 13

14 3.3 RAM E MACCHINE DI TURING Calcolabilità mediante RAM Def. Una funzione f: Nn N è calcolabile da una RAM se esiste un programma P tale che - se f(x1,...,xn)=y, allora P, attivato con x1,...,xn sul nastro di input, termina con y sul nastro di output - se f(x1,...,xn) non è definita, allora P non termina 14

15 Teorema. Sia M=<{0,1},b,K,q0,F,δ> una MT con nastro seminfinito; esistono una RAM ed un programma P tali che se M calcola q 0 x *q F y e la RAM ha la stringa x nelle celle 2,..., x +1 al termine della computazione la RAM ha la stringa y nelle celle 2,..., y +1; inoltre la RAM simula T passi di M in tempo O(T log T) nel modello a costi logaritmici. Dim. Stabiliamo una corrispondenza tra la cella i del nastro di M e la cella i+1 della memoria della RAM. Usiamo la cella 1 della RAM per rappresentare la posizione della testina di M. All'inizio la cella 1 contiene il valore 2 (posizione iniziale della testina di M). P contiene una sequenza di istruzioni per ogni stato di M. 15

16 Esempio. Se δ(q1,0)=<q2,1,d> e δ(q1,1)=<q3,0,s> allora P contiene il seguente frammento di programma:... q1 LOAD *1 acquisizione del contenuto del nastro JGTZ q1' 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 q1' 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... 16

17 Ogni passo di M è 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) 17

18 Teorema. Data una RAM con programma P che calcola la funzione f esiste una MT M tale che se f(x1,...,xn)=y e sul nastro di input sono memorizzati in binario gli interi x1,...,xn la macchina M termina con la rappresentazione binaria di y sul nastro di output e se f(x1,...,xn) non è definita 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, un nastro di input e un nastro di output. Sul nastro 1 sono memorizzati in binario i dati memorizzati nella memoria della 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 ]. 18

19 Sul nastro 2 è rappresentato il contenuto dell'accumulatore. Il nastro 3 è usato per il funzionamento di M. Per ogni istruzione del programma della RAM, M ha un insieme di stati per eseguire le operazioni. Istruzioni di salto JUMP, JGTZ, JZERO, HALT: si controlla se il contenuto dell'accumulatore verifica le condizioni di salto e si gestiscono i corrispondenti cambiamenti di stato Istruzioni che non modificano il contenuto della memoria LOAD, ADD, SUB, MULT, DIV, WRITE: si cerca sul nastro 1 il registro su cui si deve operare si esegue sul nastro contenente la rappresentazione dell'accumulatore l'operazione prevista 19

20 Istruzioni che modificano il contenuto della memoria STORE,READ si trascrive sul nastro 3 il contenuto del nastro 1 a destra del registro da modificare si esegue l'operazione modificando sul nastro 1 la rappresentazione del contenuto del registro da modificare si ricopia sul nastro 1 il contenuto del nastro 3 a destra della cella modificata. 20

21 Analisi di complessità. i) Ogni sequenza di transizioni relativa ad una operazione di RAM costa ad M, nel caso peggiore, un tempo dell'ordine della massima lunghezza lungmax del nastro 1 e se la RAM opera con costo totale T allora lungmax 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 su 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 su nastro 1 proprio log(r[i]) celle quindi lungmax T 21

22 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 lungmax) = O(T2). 22

23 NOTA BENE 1 Tutto cio' che si può fare (calcolo di funzioni, riconoscimento o accettazione di insiemi, 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 è chiaro che il loro potere computazionale coincide con quello dei linguaggi di programmazione ad alto livello. Tesi di Church-Turing: tutti i modelli di calcolo introdotti per definire la calcolabilità (e tutti i linguaggi di programmazione) hanno al massimo lo stesso potere computazionale delle MT. 23

24 NOTA BENE 2 Una MT ed una RAM con modello a costi logaritmici possono simularsi a vicenda in tempo polinomiale. La stessa cosa non si può fare se si considerano RAM con moltiplicazione e costi unitari (Esercizio). 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 definire la "trattabilità" (calcolabilità in tempo polinomiale) hanno al più lo stesso potere computazionale delle MT operanti in tempo polinomiale. Questo principio "potrebbe" essere violato dalle macchine quantistiche (fattorizzazione in tempo polinomiale!) 24

25 3.4 MACCHINE A REGISTRI ELEMENTARI (MREL) Esistono modelli di calcolo ancora più elementari delle RAM dotati dello stesso potere computazionale. - Due sole istruzioni di incremento e decremento del contenuto di registri: R[i] := R[i] + 1 R[i] := R[i] - 1 Se il contenuto è 0 il decremento lascia 0. - Una sola istruzione di salto: IF R[i] = 0 THEN GOTO n (altrimenti prosegui). 25

26 Altre semplificazioni: - eliminazione di nastri di ingresso e uscita - eliminazione dell'accumulatore - eliminazione dell'indirizzamento indiretto Convenzioni: - all'inizio l'input è nei registri 1,..., n - tutti gli altri registri contengono 0 - al termine l'output è nel registro 1 - la macchina si arresta se si richiede un salto ad un'istruzione che non esiste. 26

27 Possiamo simulare tutte le istruzioni di una RAM: LOAD 1 ADD 2 STORE 1 si realizza nel seguente modo: IF R[2] = 0 THEN GO TO 6 R[2] := R[2] - 1 R[1] := R[1] + 1 R[3] := R[3] + 1 IF R[4] = 0 THEN GO TO 1 IF R[3] = 0 THEN GO TO 0 R[3] := R[3] - 1 R[2] := R[2] + 1 IF R[4] = 0 THEN GO TO 6 27

28 Teorema. Ogni funzione f: N n N calcolabile con una RAM è calcolabile con una MREL e viceversa. In conclusione si può osservare come semplici istruzioni di incremento e decremento di registri (contatori) siano sufficienti ad effettuare il calcolo di una qualunque funzione calcolabile. Vari altri risultati hanno mostrato come sia possibile definire modelli di calcolo estremamente elementari. ESEMPIO - Ogni funzione calcolabile può essere calcolata da una RAM con due soli registri. 28

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

Подробнее

Macchine a registri RAM (Random Access Machines)

Macchine a registri RAM (Random Access Machines) 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

Подробнее

Fondamenti dell informatica

Fondamenti dell informatica Fondamenti dell informatica Macchine a registri Rosario Culmone [email protected] 9/4/2008 UNICAM - p. 1/24 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Подробнее

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

Подробнее

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

Подробнее

Il linguaggio macchina

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

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

Подробнее

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante A.A. 2018/2019 Docente Prof. Raffaele Pizzolante FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE Architettura di Von Neumann Modello concettuale di un architettura di computer che permette di rappresentare,

Подробнее

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

Подробнее

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 del Calcolatore

Architettura del Calcolatore Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore

Подробнее

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Подробнее

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

Подробнее

Macchina di Turing. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Macchina di Turing. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017 Macchina di Turing Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Un modello di calcolo universale Macchina di Turing Gli AP sono più potenti degli FSA (= maggiori capacità

Подробнее

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Подробнее

Corso di Laurea in Informatica. Linguaggi di Programmazione. Fondamenti e Calcolabilità Valeria Carofiglio. a.a

Corso di Laurea in Informatica. Linguaggi di Programmazione. Fondamenti e Calcolabilità Valeria Carofiglio. a.a Linguaggi di Programmazione Corso di Laurea in Informatica Fondamenti e Calcolabilità Valeria Carofiglio a.a. 2015-2016 (questo materiale è una rivisitazione del materiale prodotto da Nicola Fanizzi) Teoria

Подробнее

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Подробнее

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

Подробнее

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

Подробнее

Macchina di Turing Universale

Macchina di Turing Universale Informatica Teorica 2010/2011 M.Di Ianni Macchina di Turing Universale Vogliamo definire una macchina di Turing U che, presi in input la descrizione di una macchina di Turing ad un nastro T ed un input

Подробнее

Componenti principali

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

Подробнее

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Подробнее

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

Подробнее

Architettura del calcolatore (Seconda parte)

Architettura del calcolatore (Seconda parte) Architettura del calcolatore (Seconda parte) Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin LINGUAGGIO E ORGANIZZAZIONE DEL CALCOLATORE Linguaggio assembly

Подробнее

Architettura del Calcolatore

Architettura del Calcolatore Francesco Folino FUNZIONI DI UN CALCOLATORE Elaborazione Memorizzazione Trasferimento Controllo MACCHINA DI VON NEUMANN TRASFERIMENTO Obiettivo: permettere lo scambio di informazioni tra le varie componenti

Подробнее

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

Подробнее

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Подробнее

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

Подробнее

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

Подробнее