En informatique théorique, la machine RAM, pour Random Access Machine, est un modèle abstrait d'ordinateur destiné à étudier des algorithmes.
une machine qui ne fait qu'effectuer des calculs sur des nombres, codés sous la forme d'une suite de symboles. Ces calculs vont donc transformer une suite de symboles en une autre. Les suites de symboles manipulées sont appelées des données, tandis que les calculs qui transforment une chaîne de « caractères » en une autre sont appelées des instructions.
Un ordinateur, quel qu'il soit, ne fait qu'exécuter une suite d'instructions dans un ordre bien précis sur des données. La suite d'instructions à exécuter s'appelle un programme.
Dans nos ordinateurs actuels, ces symboles sont des 0 ou des 1 : notre ordinateur utilise la numération binaire.
La machine RAM est un ordinateur composé :
d'une unité de calcul, qui va effectuer des instructions ;
une mémoire, à savoir quelque chose capable de retenir des données, pour pouvoir les stocker et les récupérer. Cette mémoire est découpée en deux sous-mémoires :
une mémoire programme, qui stocke les instructions du programme à effectuer dans l'ordre dans lequel elles doivent être calculées ;
une mémoire de travail, qui stocke les données (variables) que va manipuler le programme ;
de registres, de petites mémoires ultra-rapides capables de stocker temporairement une donnée ;
d'une bande de sortie, un morceau de papier sur lequel notre machine RAM va écrire le résultat du programme exécuté ;
une bande d'entrée sur laquelle est inscrit l'ensemble des données initiales nécessaires à l'exécution du programme, qui va être lue par notre machine RAM ;
et d'un bus de communication qui va permettre la transmission de données ou d'instructions entre les différents composants de la machine.
La mémoire d'un ordinateur sert à stocker le programme à exécuter et ses données. On peut accéder à la mémoire de deux façons :
en écriture : on stocke une donnée dans la mémoire ;
en lecture : on récupère une donnée/instruction de la mémoire.