Abstract
Automatically specialising an algorithm for unification is a challenge to current techniques for partial evaluation. In this paper a study is made of several specialisations of unification that are typically needed. The limitations of existing partial evaluation techniques are examined and proposals for extensions are made. Partial evaluation is modified by adding condition goals which are used to evaluate or prune more of the computation tree than is possible with partial evaluation alone. It is shown that abstract substitutions can be introduced to allow information from infinite computation trees to be exploited. If infinite failures are removed from the computation tree the resulting specialised program does not preserve the procedural semantics given by SLDNF (which defines negation by finite failure). There is a short discussion on correctness results for such specialisations.
Work supported by ESPRIT II project PRINCE (5246)
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
K. Benkerimi and J.W. Lloyd; A Procedure for Partial Evaluation of Logic Programs; Proceedings of the North American Conference on Logic Programming, November 1990, Austin, Texas; (eds. S. Debray and M. Hermenegildo); MIT Press 1990.
M. Bruynooghe; A Practical Framework for the Abstract Interpretation of Logic Programs: to appear in Journal of Logic Programming.
D. Chan and M. Wallace; A Treatment of Negation During Partial Evaluation; in M eta-Programming in Logic Programming; eds. H. Abramson and M.H. Rogers, MIT Press, 1989.
J. Gallagher and M. Buynooghe; Some Low-Level Source Transformations for Logic Programs; Proceedings of Meta90 Workshop on Meta Programming in Logic, Leuven, Belgium, (April 1990).
J. Gallagher and M. Bruynooghe; The Derivation of an Algorithm for Program Specialisation; 7th Int. Conf. on Logic Programming, Jerusalem, eds. D.H.D. Warren and P. Szeredi, MIT Press, June 1990.
J. Gallagher, M. Codish, E. Shapiro; Specialisation of Prolog and FCP Programs Using Abstract Interpretation; New Generation Computing, 6 (1988) 159–186.
J. Gallagher; SP: A System for Specialising Logic programs; Technical Report, University of Bristol.
P.M. Hill and J.W. Lloyd; Analysis of Meta-Programs; in M eta-Programming in Logic Programming; eds. H. Abramson and M.H. Rogers, MIT Press, 1989.
G. Janssens and M. Bruynooghe; Deriving Descriptions of Possible Valuam Variables by Means of Abstract Interpretation; Katholieke Univ. Leuven, CW-Report 108, 1990 (to appear in Journal of Logic Programming).
J.W. Lloyd and J.C. Shepherdson; Partial Evaluation in Logic Programming; University of Bristol, Department of Computer Science, TR-87-09 (1987) (revised 1989); (to appear in Journal of Logic Programming).
H. Seki; Unfold/Fold transformations of Stratified Programs; in Proc. of the 6th Int. Conf. on Logic Programming, Lisbon, 1989, eds. G. Levi and M. Martelli, MIT Press, 1989.
L. Sterling and E. Shapiro; The Art of Prolog; MIT Press (1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
de Waal, D.A., Gallagher, J. (1992). Specialisation of a Unification Algorithm. In: Clement, T.P., Lau, KK. (eds) Logic Program Synthesis and Transformation. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3494-7_15
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3494-7_15
Publisher Name: Springer, London
Print ISBN: 978-3-540-19742-3
Online ISBN: 978-1-4471-3494-7
eBook Packages: Springer Book Archive