suivant: L'interface
monter: La résolution de buts
précédent: Algorithme de résolution de
  Table des matières
La résolution de buts mise en place ici ne possède pas de ramasse-miettes
(garbage collector en anglais). Si la profondeur venait à être trop grande,
soit parce que la question posée demande trop de ressources, soit parce que
la résolution est entrée dans une boucle infinie,
un message du type stack overflow est affiché par le système. Pour tenter
de résoudre ce probléme, on arrête, avec une erreur, les appels récursifs au-delà
d'une certaine profondeur. Ceci est complètement arbitraire : il se peut
qu'une erreur du type stack overflow se produise avant, si les
environnements précédents sont trop importants. Il faudrait pouvoir quantifier
plus précisément les choses, ou mettre un ramasse-miettes en place.
Comme on l'a vu précédemment, certaines boucles ont pu être évitées en
faisant pointer la variable de niveau supérieur vers la variable de niveau
inférieur. Mais les boucles du type *i0 pointe vers f(*x0) et *x0 pointe
vers *i0 ne sont pas gérées et conduisent à un arbre de résolution infini.
C'est essentiellement ce problème que l'on a voulu éviter en arrêtant l'algorithme à
une certaine profondeur.
suivant: L'interface
monter: La résolution de buts
précédent: Algorithme de résolution de
  Table des matières
Alexandre DAGAN
2000-07-07