Macchina RAM: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Funzionalità collegamenti suggeriti: 1 collegamento inserito. Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile Attività per i nuovi utenti Suggerito: aggiungi collegamenti |
||
(10 versioni intermedie di 9 utenti non mostrate) | |||
Riga 1:
{{F|matematica|arg2=teorie dell'informatica|aprile 2015}}
Il modello della '''macchina RAM''' è uno strumento classico per l'analisi delle procedure sequenziali.
Questo modello è caratterizzato da una memoria ad [[accesso casuale]] formata da celle che possono contenere un intero qualsiasi; le istruzioni utilizzate sono quelle di un elementare [[linguaggio macchina]] che consente di eseguire istruzioni di input e di output, svolgere operazioni aritmetiche, accedere e modificare il contenuto della memoria, eseguire semplici comandi di salto.
La semplicità di questo modello, astrazione di un elaboratore, consente di comprendere procedure scritte mediante linguaggi ad alto livello e possono essere eseguiti su macchine RAM. Fra i limiti del modello si sottolinea che non è presente una gerarchia di memoria (memoria tampone, [[memoria di massa]]) e le istruzioni sono eseguite una alla volta su un unico processore.
== Modello ==
Il modello della macchina RAM (
Ciascuno dei due nastri è rappresentato da infinite celle, numerate a partire dalla prima, ognuna delle quali può contenere un numero intero. Il nastro di ingresso è dotato di una testina di sola lettura mentre quello di uscita dispone di una testina di sola scrittura. Le due testine si muovono sempre da sinistra verso destra e nello stato iniziale sono posizionate sulla prima cella. Inizialmente tutte le celle del nastro di uscita sono vuote mentre il nastro di ingresso contiene l'input della macchina; questo è formato da un vettore di n interi x<sub>1</sub>,x<sub>2</sub>,...x<sub>n</sub> disposti ordinatamente nelle prime n celle del nastro.
Il programma è fissato e non può essere modificato durante l'esecuzione. Ciascuna istruzione è etichettata e il registro lc (Location counter) contiene l'etichetta dell'istruzione da eseguire. Le istruzioni molto semplici, si avvicinano molto ad un linguaggio [[Assembler]].
▲Il modello della macchina RAM (Macchina ad accesso casuale) è costituito da un nastro di ingresso, un nastro di uscita, un programma rappresentato da una sequenza finita di istruzioni, un contatore lc che indica l'istruzione corrente da eseguire e una memoria formata da infiniti registri R<sub>0</sub>,R<sub>1</sub>,... R<sub>n</sub>.
▲Ciascuno dei due nastri è rappresentato da infinite celle, numerate a partire dalla prima, ognuna delle quali può contenere un numero intero. Il nastro di ingresso è dotato di una testina di sola lettura mentre quello di uscita dispone di una testina di sola scrittura. Le due testine si muovono sempre da sinistra verso destra e nello stato iniziale sono posizionate sulla prima cella. Inizialmente tutte le celle del nastro sono vuote mentre il nastro di ingresso contiene l'input della macchina; questo è formato da un vettore di n interi x<sub>1</sub>,x<sub>2</sub>,...x<sub>n</sub> disposti ordinatamente nelle prime n celle del nastro.
Ogni registro R<sub>k</sub> può contenere un numero arbitrario intero relativo. L'indirizzo del registro R<sub>k</sub> è l'intero k. Il registro R<sub>0</sub> è chiamato accumulatore ed è l'unico sul quale si possono svolgere operazioni aritmetiche.
▲Il programma è fissato e non può essere modificato durante l'esecuzione. Ciascuna istruzione è etichettata e il registro lc (Location counter) contiene l'etichetta dell'istruzione da eseguire. Le istruzioni molto semplici, si avvicinano molto ad un linguaggio [[Assembler]].
▲Ogni registro R<sub>k</sub> può contenere un numero arbitrario intero relativo. L'indirizzo del registro R<sub>k</sub> è l'intero k. Il registro R<sub>0</sub> è chiamato accumulatore ed è l'unico sul quale si possono svolgere operazioni aritmetiche.
== Programmazione di una macchina RAM ==
Il programma di una macchina RAM è una sequenza finita di istruzioni:
<math>P = istr_1;istr_2;...istr_m</math>
Riga 26 ⟶ 23:
#<nowiki>*</nowiki>i indica il contenuto del registro R<sub>j</sub>, dove j è il contenuto del registro R<sub>i</sub>
== Voci correlate ==
* [[Macchina di Turing]]
* [[Macchina RASP]]
{{Portale|informatica|matematica}}
[[Categoria:Teoria degli automi]]
|