Partial évaluation in logic programming
Type doc. :
Langue :
Auteur(s) :
Année de soutenance:
Afficher le Résumé
investigate techniques for the partial evaluation of logic pro-grams. Partial evaluation is a program transformation technique. In logic pro-gramming, it can be described as follows. Given a program P and a goal G,partial evaluation produces a new program P’, which is P specialised to the goalG. The goal G should have the same (correct and computed) answers wrt P andP’ and should run more efficiently for P’ than for P.We describe a procedure for the partial evaluation of normal rograms andprove its correctness. The procedure produces partially evaluated programs whichare procedurally equivalent to the original programs for goals of a certain form. Itachieves this by ensuring simple syntactic conditions called the coveredness andindependence conditions. We also discuss various computation rules for partialevaluation on a sample of programs and compare them with other well-knowncomputation rules and search strategies.We then present renaming transformations for the partial evaluation of logicprograms. These are transformations which introduce new predicate symbols intoprograms and can increase the efficiency of partially evaluated programs. Weconsider three types of renaming transformations. The trst one, called static re-d redicatenaming transformation, a pre-processing stage whic lIl ro uces new psymbols into the original program P in such a Way as to preserve the computa-tional equivalence of P and the transformed program. The transformed programis then partially evaluated instead of P. The second one is a dynamic renamingtransformation which introduces new predicate symbols into a program duringits partial evaluation. This has the advantage of being more flexible than thepre-processing renaming, since it introduces new predicate symbols only whereneeded. The third renaming transformation we consider is a post-processing re-naming which introduces new predicate symbols into a program after its partialevaluation.Finally, we study the partial evaluation of dynamic logic programs. A dynamicprogram is a program to which an update can be applied. An update is a sequenceof additions of clauses to a program and deletions of clauses from a program. Wepresent algorithms which, given a normal program P, a normal goal G’, a partiallyevaluated program P’ wrt G, and an update t for P, compute the correspondingupdate t’ such that t’(P’) is a partially evaluated program of t(P) wrt G. Weprove the correctness of these algorithms and then present an application of oneof them to dynamic knowledge bases.
| N° Bulletin | Date / Année de parution | Titre N° Spécial | Sommaire |
|---|
| Cote | Localisation | Type de Support | Type de Prêt | Statut | Date de Restitution Prévue | Réservation |
|---|---|---|---|---|---|---|
| 004 BEN TH C1 | BIB-Centrale / Thèses | interne | disponible |