rmachine

Logiciel capture d'écran:
rmachine
Détails logiciels:
Version: 0.12
Date de transfert: 3 Jun 15
Développeur: Michael Vogt
Licence: Gratuit
Popularité: 36

Rating: 1.0/5 (Total Votes: 1)

rmachine est un simulateur de machine de registre (la version de la théorie de la complexité), programmé en Python, complète avec un module pour être utilisé dans vos programmes et un (PyQt4) GUI.
La machine ("RAM") est égale à une machine de Turing est en son pouvoir computional. Il dispose d'une mémoire théoriquement illimité (mais est limitée dans la pratique par la mémoire de votre ordinateur).
Ceci est un simulateur pour les machines de registre (la version de la théorie de la complexité). Voici une courte introduction.
La machine ("RAM") est égal aux machines de Turing est en son pouvoir computional. Il dispose d'une mémoire théoriquement illimité (dans la pratique limitée par la mémoire de votre ordinateur). les cellules de mémoire ("registres") peuvent stocker des entiers> = 0 de longueur quelconque. Dites le 5ème registre contient le numéro 42. Vous écririez comme c (5) = 42. c (0) est aussi appelé "assembleur" et a un rôle important, comme vous le verrez plus tard.
La RAM dispose également d'un programme de lutte contre b, initally mis à 1 et représentant essentiellement la ligne suivante à exécuter.
La structure d'un programme typique ressemble à ceci:
  # Les commentaires vont ici
  # Plus de commentaires
  INPUT 4 6 8 9
  (Instructions vont ici)
  FIN
La ligne "INPUT" devrait être trouvée juste après les commentaires. L'entrée est placé dans c (1), c (2), etc. Dans cet exemple, c (1) = 4, c (2) = 6, c (3) = 8, c (4) = 9.
Maintenant, avec tout cela, voici le jeu d'instructions. La première ligne est l'instruction elle-même, la 2e ligne explique ce qu'il fait.
-
CHARGE 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
-
MAGASIN i
c (i): = C (0), b: b = + 1
-
INDSTORE i
c (c (i)): = C (0), b: b = + 1
-
AJOUTER 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
-
I SUB
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
Remarque: Les décimales seront coupées
-
CDIV i
c (0): = c (0) / i, b: = b + 1
Remarque: Les décimales seront coupées
-
INDDIV i
c (0) = c (0) / c (c (i)), b: b = + 1
Remarque: Les décimales seront coupées
-
GOTO i
b: i =
-
SI l GOTO X i
X peut être un de ceux:
b: = i si (c (0) X l) est vrai
(Plus officieusement, "IF <5 GOTO 10" fixerait b = 10 si c (0)

Exigences :

  • Python
  • PyQt4

Commentaires à rmachine

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!