Macchina RAM: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FixBot (discussione | contributi)
m Bot: aggiungo template {{Avvisounicode}} (vedi qui)
Funzionalità collegamenti suggeriti: 1 collegamento inserito.
 
(15 versioni intermedie di 12 utenti non mostrate)
Riga 1:
{{F|matematica|arg2=teorie dell'informatica|aprile 2015}}
{{Avvisounicode}}
Il modello della '''macchina RAM''' è uno strumento classico per l'analisi delle procedure sequenziali.
Questo modello è caratterizzato da una memoria ad [[accesso sequenzialecasuale]] 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 (Macchinamacchina 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 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.
 
[[Immagine:Modello_macchina_RAM.gif]]
 
== 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]]
{{Portale|matematica}}
[[categoria:Teoria della computazione]]