rmachine adalah simulator mesin register (kompleksitas teori versi), diprogram dengan Python, lengkap dengan modul yang akan digunakan dalam program Anda dan (PyQt4) GUI.
Mesin ("RAM") adalah sama dengan mesin Turing berkuasa computional nya. Ini memiliki memori secara teoritis tak terbatas (tapi terbatas dalam praktek oleh memori komputer Anda).
Ini adalah simulator untuk mesin register (kompleksitas teori versi). Berikut adalah pengenalan singkat.
Mesin ("RAM") adalah sama dengan mesin turing berkuasa computional nya. Ini memiliki memori secara teoritis tak terbatas (dalam praktek dibatasi oleh memori komputer Anda). Sel memori ("register") dapat menyimpan bilangan bulat> = 0 dari setiap panjang. Katakanlah register 5 berisi nomor 42. Anda akan menulis sebagai c (5) = 42. c (0) disebut juga "assembler" dan memiliki peran penting, karena Anda akan lihat nanti.
RAM juga memiliki program counter b, initally set ke 1 dan pada dasarnya mewakili baris berikutnya yang akan dieksekusi.
Struktur program khas terlihat seperti ini:
# Komentar pergi di sini
# Lebih komentar
INPUT 4 6 8 9
(Instruksi pergi di sini)
END
The "INPUT" baris harus ditemukan tepat setelah komentar. Input akan ditempatkan di c (1), c (2) dll Dalam contoh ini, c (1) = 4, c (2) = 6, c (3) = 8, c (4) = 9.
Sekarang, dengan semua itu, inilah set instruksi. Baris pertama adalah instruksi itu sendiri, garis-2 menjelaskan apa yang dilakukannya.
-
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
-
STORE 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
Catatan: desimal akan dipotong
-
CDIV i
c (0): = c (0) / i, b: = b + 1
Catatan: desimal akan dipotong
-
INDDIV i
c (0): = c (0) / c (c (i)), b: = b + 1
Catatan: desimal akan dipotong
-
GOTO i
b: = i
-
JIKA X l GOTO i
X bisa menjadi salah satu:
b: = i if (c (0) X l) benar
(Lebih informal, "JIKA <5 GOTO 10" akan mengatur b = 10 jika c (0)
Persyaratan :
- Python
- PyQt4
Komentar tidak ditemukan