rmachine on rekisteri kone simulaattori (kompleksisuusteoria versio), ohjelmoitu Python, jossa moduulia voidaan käyttää ohjelmia ja (PyQt4) GUI.
Kone ("RAM") on yhtä kuin Turingin koneilla sen computional valtaa. Se on teoriassa rajaton muisti (mutta on rajoitettu käytännössä tietokoneen muistiin).
Tämä on simulaattorin rekisterin koneet (kompleksisuusteoria versio). Seuraavassa lyhyt esittely.
Kone ("RAM") on yhtä kuin Turingin koneilla sen computional valtaa. Se on teoriassa rajaton muisti (käytännössä rajoitettu tietokoneesi muistin). Muistin solut ("rekisterit") voi tallentaa kokonaislukuja> = 0 pituudesta. Sano 5th rekisteri sisältää numeron 42. Sinun kirjoittaa sen c (5) = 42. c (0) kutsutaan myös "kokoajan", ja on tärkeä rooli, kuten näet myöhemmin.
RAM on myös ohjelma laskuri b, Alkukui- asetettu 1 ja pohjimmiltaan edustaa seuraavalle riville suoritettavaksi.
Rakenne tyypillinen ohjelma näyttää tältä:
# Comments täältä
# Lisää kommentteja
INPUT 4 6 8 9
(Ohjeet täältä)
END
"Tulo" linjaa pitäisi löytyä heti kommentteja. Tulo sijoitetaan c (1), C (2) jne. Tässä esimerkissä, c (1) = 4, c (2) = 6, c (3) = 8, c (4) = 9.
Nyt kaikki, että tässä on ohje asetettu. Ensimmäinen rivi on itse käskystä, 2. rivi selittää, mitä se tekee.
-
LOAD i
c (0): = c (i), b: = b + 1
-
CLOAD i
c (0): = i, b: = b + 1
-
INDLOAD i
c (0): = c (c (i)), b: = b + 1
-
KAUPPA i
c (i): = c (0), b: = b + 1
-
INDSTORE i
c (c (i)): = c (0), b: = b + 1
-
ADD i
c (0): = c (0) + c (i), b: = b + 1
-
CADD i
c (0): = c (0) + i, b: = b + 1
-
INDADD i
c (0): = c (0) + c (c (i)), b: = b + 1
-
SUB i
c (0): = max (c (0) - c (i), 0), b: = b + 1
-
CSUB i
c (0): = max (c (0) - i, 0), b: = b + 1
-
INDSUB i
c (0): = max (c (0) - c (c (i)), 0), b: = b + 1
-
MUL i
c (0): = c (0) * c (i), b: = b + 1
-
CMUL i
c (0): = c (0) * i, b: = b + 1
-
INDMUL i
c (0): = c (0) * c (c (i)), b: = b + 1
-
DIV i
c (0): = c (0) / c (i), b: = b + 1
Huomautus: desimaaleja leikkautuu
-
CDIV i
c (0): = c (0) / i, b: = b + 1
Huomautus: desimaaleja leikkautuu
-
INDDIV i
c (0): = c (0) / C (c (i)), b: = b + 1
Huomautus: desimaaleja leikkautuu
-
GOTO i
b: = i
-
IF X l GOTO i
X voi olla yksi niistä:
b: = i jos (c (0) X l) on tosi
(More epävirallisesti, "JOS <5 GOTO 10" asettaisivat b = 10, jos c (0)
vaatimukset
- python
- PyQt4
Kommentteja ei löytynyt