Machine virtuelle UrmCutland : Unlimited Register Machine de Cutland (variante de la machine de Shepherdson – Sturgis) Plus de détails...
Fonctions membres publiques | |
def | __getitem__ |
Renvoie la valeur du registre numéro n. | |
def | __init__ |
Initialise la machine virtuelle UrmCutland. | |
def | __iter__ |
Itère sur les registres de la machine virtuelle. | |
def | __len__ |
Nombre de registres utilisés. | |
def | __setitem__ |
Initialise la valeur du registre numéro n à value. | |
def | __str__ |
Renvoie dans un string la suite des valeurs des registres numérotés de 1 à len() | |
def | godelnumber |
Renvoie le "nombre de Gödel" associé à la liste des registres. | |
def | J_test |
Registre numéro a == registre numéro b ? | |
def | read |
Initialise avec les valeurs lues dans le fichier f les nb registres à partir du registre numéro n (si nb != None alors lit au plus nb valeurs) | |
def | run |
Exécute au plus nb instructions (ou toutes si nb == None) de prog à partir de l'instruction numéro i et renvoie (numéro de l'instruction finale, nombre d'instructions exécutées) | |
def | S |
Instruction Successor : ajoute 1 dans le registre numéro a. | |
def | T |
Instruction Transfer : initialise le registre numéro b avec la valeur du registre numéro a. | |
def | write |
??? | |
def | Z |
Instruction Zero : initialise le registre numéro a à 0. |
Machine virtuelle UrmCutland : Unlimited Register Machine de Cutland (variante de la machine de Shepherdson – Sturgis)
Machine virtuelle constituée d'une infinité (potentielle) de registres numérotées 1, 2, 3, ...
Chaque registre contient un naturel (initialement 0).
Un programme pour cette machine virtuelle est une suite finie d'instructions numérotées 1, 2, 3, ..., k
Liste des instructions (a, b et c étant des naturels ≥ 1) :
Zero Z(a) : initialiser le registre numéro a avec la valeur 0 Successor S(a) : incrémenter la valeur du registre numéro a Transfer T(a,b) : initialiser le registre numéro b avec la valeur du registre numéro a Jump J(a,b,c) : si la valeur du registre numéro a == la valeur du registre numéro b alors reprendre à partir de l'instruction numéro c (si elle existe, sinon arrêter le programme) sinon ne rien faire
Cf. Computability: A introduction to recursive function theory (Nigel J. Cutland, Cambridge University Press, 2000)
Cf. http://www.opimedia.be/Bruno_Marchal/index.htm#Theo
Pour une présentation imagée par un "coffee bar" cf. Re: Key Post 1, toward Church Thesis and Lobian machine (Bruno Marchal)
Machine virtuelle UrmCutland : Unlimited Register Machine de Cutland (variante de la machine de Shepherdson - Sturgis)
Définition à la ligne 677 du fichier urmCutland.py.
def DSPython.urmCutland.UrmCutland.__init__ | ( | self, | |
init = () , |
|||
nb = 1 |
|||
) |
Initialise la machine virtuelle UrmCutland.
Initialise la machine virtuelle UrmCutland en initialisant ses premiers registres. Si init est un naturel alors initialise les nb premiers registres avec la valeur init. Si init est une séquence alors initialise les premiers registres avec les valeurs de init prises nb fois Pre: init: naturel ou séquence de naturels nb: naturel O() = nb
Définition à la ligne 699 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
def DSPython.urmCutland.UrmCutland.__getitem__ | ( | self, | |
n | |||
) |
Renvoie la valeur du registre numéro n.
Renvoie la valeur du registre numéro n Pre: n: naturel >= 1 Result: naturel O() = ...
Définition à la ligne 683 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
def DSPython.urmCutland.UrmCutland.__iter__ | ( | self | ) |
Itère sur les registres de la machine virtuelle.
Itère sur les registres de la machine virtuelle O() = 1
Définition à la ligne 729 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._regs.
def DSPython.urmCutland.UrmCutland.__len__ | ( | self | ) |
Nombre de registres utilisés.
Renvoie le nombre de registres utilisés (en fait le plus grand numéro de registre parmi les registres ayant été utilisés) Result: naturel O() = 1
Définition à la ligne 738 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._regs.
def DSPython.urmCutland.UrmCutland.__setitem__ | ( | self, | |
n, | |||
value | |||
) |
Initialise la valeur du registre numéro n à value.
Initialise la valeur du registre numéro n à value Pre: n: naturel >= 1 value: naturel O() = ...
Définition à la ligne 750 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
def DSPython.urmCutland.UrmCutland.__str__ | ( | self | ) |
Renvoie dans un string la suite des valeurs des registres numérotés de 1 à len()
Renvoie dans un string la suite des valeurs des registres numérotés de 1 à len() Result: string O() = ...
Définition à la ligne 766 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
def DSPython.urmCutland.UrmCutland.godelnumber | ( | self | ) |
Renvoie le "nombre de Gödel" associé à la liste des registres.
Renvoie le "nombre de Gödel" associé à la liste des registres, càd 2**r_1 * 3**r_2 * 5**r_3 * 7**r_4 * ... où r_i est la valeur du registre numéro i Result: naturel >= 1 O() = ...
Définition à la ligne 798 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._regs.
def DSPython.urmCutland.UrmCutland.J_test | ( | self, | |
a, | |||
b | |||
) |
Registre numéro a == registre numéro b ?
Renvoie True si les registres numéro a et numéro b contiennent la même valeur, False sinon Pre: a: naturel >= 1 b: naturel >= 1 Result: bool O() = ...
Définition à la ligne 810 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
Référencé par DSPython.urmCutland.UrmCutland.run().
def DSPython.urmCutland.UrmCutland.read | ( | f, | |
n = 1 , |
|||
nb = None |
|||
) |
Initialise avec les valeurs lues dans le fichier f les nb registres à partir du registre numéro n (si nb != None alors lit au plus nb valeurs)
Initialise avec les valeurs lues dans le fichier f les registres à partir du registre numéro n (si nb != None alors lit au plus nb valeurs) Pre: f: fichier (texte) ouvert en lecture composé uniquement des caractères '0'..'9', ' ', ',', ';', '\t', 'n' ??? n: naturel >= 1 nb: None ou naturel O() = ...
Définition à la ligne 833 du fichier urmCutland.py.
Références DSPython.natural_is().
def DSPython.urmCutland.UrmCutland.run | ( | self, | |
prog, | |||
i = 1 , |
|||
nb = None |
|||
) |
Exécute au plus nb instructions (ou toutes si nb == None) de prog à partir de l'instruction numéro i et renvoie (numéro de l'instruction finale, nombre d'instructions exécutées)
Exécute au plus nb instructions (ou toutes si nb == None) de prog à partir de l'instruction numéro i et renvoie (numéro de l'instruction finale, nombre d'instructions exécutées) (le numéro de l'instruction finale est en fait soit le numéro après la dernière instruction exécutée, soit le numéro d'une instruction qui n'existe pas mentionné par la dernière instruction J exécutée) Pre: prog: UrmCutlandProg i: naturel >= 1 nb: None ou naturel Result: (naturel >= 1, naturel) O() = ...
Définition à la ligne 871 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland.J_test(), DSPython.natural_is(), DSPython.urmCutland.UrmCutland.S(), DSPython.urmCutland.UrmCutland.T(), et DSPython.urmCutland.UrmCutland.Z().
def DSPython.urmCutland.UrmCutland.S | ( | self, | |
a | |||
) |
Instruction Successor : ajoute 1 dans le registre numéro a.
Instruction Successor : ajoute 1 dans le registre numéro a Pre: a: naturel >= 1 O() = ...
Définition à la ligne 917 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
Référencé par DSPython.urmCutland.UrmCutland.run().
def DSPython.urmCutland.UrmCutland.T | ( | self, | |
a, | |||
b | |||
) |
Instruction Transfer : initialise le registre numéro b avec la valeur du registre numéro a.
Instruction Transfer : initialise le registre numéro b avec la valeur du registre numéro a Pre: a: naturel >= 1 b: naturel >= 1 O() = ...
Définition à la ligne 932 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
Référencé par DSPython.urmCutland.UrmCutland.run().
def DSPython.urmCutland.UrmCutland.write | ( | f | ) |
???
??? Pre: f: fichier (texte) ouvert en lecture O() = ...
Définition à la ligne 951 du fichier urmCutland.py.
def DSPython.urmCutland.UrmCutland.Z | ( | self, | |
a | |||
) |
Instruction Zero : initialise le registre numéro a à 0.
Instruction Zero : initialise le registre numéro a à 0 Pre: a: naturel >= 1 O() = ...
Définition à la ligne 963 du fichier urmCutland.py.
Références DSPython.urmCutland.UrmCutland._extend(), DSPython.urmCutland.UrmCutland._regs, et DSPython.natural_is().
Référencé par DSPython.urmCutland.UrmCutland.run().