DSPython  00.03.03 — 25 juin 2012
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Fonctions membres publiques
Référence de la classe DSPython.urmCutland.UrmCutland

Machine virtuelle UrmCutland : Unlimited Register Machine de Cutland (variante de la machine de ShepherdsonSturgis) Plus de détails...

Liste de tous les membres

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.

Description détaillée

Machine virtuelle UrmCutland : Unlimited Register Machine de Cutland (variante de la machine de ShepherdsonSturgis)

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.


Documentation des constructeurs et destructeur

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().


Documentation des fonctions membres

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().


La documentation de cette classe a été générée à partir du fichier suivant :