Машина з довільним доступом до пам'яті (рівнодоступна адресна машина, скорочено РАМ-машина) — модель машини з одним суматором, команди програми не можуть змінювати самі себе. Служить теоретичною моделлю, зокрема, для аналізу алгоритмів.[1]

Структура ред.

РАМ-машина складається з вхідної стрічки, з якої вона може лише зчитувати, та вихідної стрічки, на яку вона може лише записувати, та пам'яті.

Вхідна стрічка складається з послідовності комірок, в яких записані цілі числа (можливо від'ємні). Щоразу, коли машина зчитує число з вхідної стрічки, зчитуюча голівка пересувається на наступну комірку вправо.

На вихідну стрічку машина може лише записувати; її розбито на комірки, які спочатку порожні. При виконанні команди запису в комірку, на яку вказує записуюча голівка, зберігається ціле число, а голівка пересувається на наступну комірку вправо. Записане вихідне число змінити вже неможливо.

Пам'ять складається з послідовності регістрів r0, r1, …, ri, …, кожен з яких може зберігати довільне ціле число.

Програма для RAM-машини зберігається не в її пам'яті. Тому припускають, що програма не здатна змінювати сама себе. Програма складається з послідовності (можливо) помічених команд. Перелік команд залежить від постановки задачі, але схожий на типову мову асемблера.

Обчислення здійснюють в першому регістрі — r0, який називають суматором. Кожна команда складається з двох частин: коду операції та адреси.

Див. також ред.

Примітки ред.

  1. Томас Кормен; Чарльз Лейзерсон, Рональд Рівест, Кліфорд Стайн (2009) [1990]. 2.2 Аналіз алгоритмів. Вступ до алгоритмів (вид. 3rd). MIT Press і McGraw-Hill. с. 42. ISBN 0-262-03384-4.

Література ред.