rmachine ay isang register machine simulator (ang bersyon kumplikado teorya), nakaprograma sa Python, kumpleto sa isang module na gagamitin sa iyong mga programa at ng isang (PyQt4) GUI.
Ang machine ("RAM") ay katumbas sa Turing machine sa kanyang kapangyarihan computional. Ito ay may theoretically unlimited memory (ngunit ito ay limitado sa pagsasanay sa pamamagitan ng memorya ng iyong computer).
Ito ay isang simulator para magparehistro machine (ang bersyon kumplikado teorya). Narito ang isang maikling pagpapakilala.
Ang machine ("RAM") ay katumbas turing machine sa kanyang kapangyarihan computional. Ito ay may theoretically unlimited memory (sa pagsasanay na limitado sa pamamagitan ng inyong mga computer memory). Cells Memory ("registers") ay maaaring tindahan integers> = 0 ng anumang haba. Sabihin sa 5th register ay naglalaman ng mga numero 42. Gusto mong isulat ito bilang c (5) = 42. c (0) ay tinatawag ding "assembler" at may isang mahalagang papel, tulad ng makikita mo sa ibang pagkakataon.
Ang RAM ay mayroon ding isang counter program b, initally set sa 1 at talaga na kumakatawan sa mga susunod na linya na maisasakatuparan.
Ang istraktura ng isang tipikal na programa ganito ang hitsura:
# Comments pumunta dito
# Higit komento
INPUT 4 6 8 9
(Tagubilin pumunta dito)
END
Dapat na matatagpuan ang linyang "INPUT" right pagkatapos ng komento. Ang input ay ilalagay sa c (1), c (2) atbp Sa halimbawang ito, c (1) = 4, c (2) = 6, c (3) = 8, c (4) = 9.
Ngayon, sa lahat na, narito ang mga pagtuturo set. Ang unang linya ay ang pagtuturo mismo, ang 2nd line ay nagpapaliwanag kung ano ang ginagawa nito.
-
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
-
TINDAHAN 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
Tandaan: Ang mga desimal ay mahihiwalay
-
CDIV i
c (0): = c (0) / i, b: = b + 1
Tandaan: Ang mga desimal ay mahihiwalay
-
INDDIV i
c (0): = c (0) / c (c (i)), b: = b + 1
Tandaan: Ang mga desimal ay mahihiwalay
-
Goto i
b: = i
-
KUNG X l Goto i
X ay maaaring isa sa mga:
b: = i kung (c (0) X l) ay totoo
(Higit pang mga impormal, "KUNG <5 Goto 10" ay itakda b = 10 kung c (0)
Kinakailangan :
- Sawa
- PyQt4
Mga Komento hindi natagpuan