Maszyna RAM
Maszyna RAM to model abstrakcyjnej maszyny, będący odmianą maszyny rejestrowej. Jest podobna do maszyny licznikowej, lecz oferuje możliwość niebezpośredniego adresowania rejestrów. Wykorzystywana jest głównie w analizie złożoności obliczeniowej algorytmów oraz jako narzędzie do nauki programowania i logicznego rozumowania. Dzięki niej można wyrobić dobre nawyki, takie jak inicjowanie zmiennych przed ich użyciem. W praktyce korzysta się z emulatorów maszyny RAM, które wizualizują działanie wprowadzonego kodu. Instrukcje maszyny RAM są często zbliżone do mnemoników asemblera, takich jak add
, sub
, mul
, div
, call
i halt
.
Budowa
Maszyna RAM składa się z dwóch głównych elementów:
- Wskaźnik rozkazów – komórka przechowująca aktualnie wykonywaną instrukcję.
- Pamięć – tablica o nieskończonej przeliczalnej liczbie elementów.
Maszyna RAM wykonuje programy wyrażone w skończonej liczbie instrukcji.
Przykład
Przykładowy program RAM oblicza funkcję:
Wejściowe wartości x i y umieszczane są w komórkach o numerach 1 oraz 2, podczas gdy pozostałe komórki pamięci są wyzerowane. Wynik działania programu (zwracana wartość) znajduje się w komórce o numerze 0.