JRAMachine to symulator maszyny RAM napisany w języku Java. Symulator umożliwia wczytanie programu napisanego na maszynę RAM i oglądanie przebiegu jego wykonania w czasie rzeczywistym.
Składnia
Rozkazy
JRAMachine obsługuje 4 podstawowe rozkazy maszyny RAM:
- Z(n) – zerowanie komórki n
- S(n) – powiększenie zawartości komórki n o jeden
- T(n,m) – kopiowanie n do m
- I(p,q,n) – porównanie p z q. Jeśli komórki mają tę samą zawartość, to maszyna skacze do linii n.
Etykiety
JRAMachine wspiera tworzenie etykiet. Często używane wartości (na przykład komórki przechowujące zmienne) można opisać etykietą:
current_state=3
Wówczas można odwoływać się bezpośrednio do etykiet:
S(current_state) T(current_state,10)
Istnieje drugi sposób tworzenia etykiet. Można napisać tak:
loop: S(0) I(0,0,loop)
W ten sposób zostanie utworzona etykieta, do której przypisany zostanie numer kolejnej linii. Etykiety te można wykorzystywać w instrukcjach skoku (a także w innych, ale w instrukcjach skoku są najbardziej przydatne).
Adresowanie pośrednie
JRAMachine wspiera adresowanie pośrednie. Aby jakaś instrukcja zadziałała nie na konkretnej komórce X, a na komórce, której adres znajduje się pod X należy użyć nawiasów kwadratowych. Np. ciąg instrukcji:
Z(0) Z(1) S(0) S([0])
zaowocuje tym, że komórki 0 i 1 będą przechowywać liczby 1. Nawiasów kwadratowych można używać także z etykietami.
Komentarze
Dozwolone są komentarze – linia z komentarzem musi zaczynać się od //:
//to jest komentarz S(0)
Pliki
- jramachine.tar.gz – paczka z binariami i źródłami,
- jramachine.jar – gotowa do uruchomienia paczka z binariami.
Program testowałem pod najnowszą wersją Javy: 6.
