Abstract
In this paper we present a partial evaluation scheme for a “real life” subset of Prolog. This subset contains first-order built-in's, simple side-effects and the operational predicate if-then-else. We outline a denotational semantics for this subset of Prolog and show how partial deduction can be extended to specialise programs of this kind. We point out some of the problems not occurring in partial deduction and show how they can be solved in our setting. Finally we provide some results based on an implementation of the above.
Preview
Unable to display preview. Download preview PDF.
References
R. Barbuti, M. Codish, R. Giacobazzi, and M. Maher. Oracle semantics for Prolog. In H. Kirchner and G. Levi, editors, Proceedings of the Third International Conference on Algebraic and Logic Programming, Lecture Notes in Computer Science 632, pages 100–114. Springer Verlag, 1992.
M. Baudinet. Proving termination of Prolog programs: A semantic approach. The Journal of Logic Programming, 14(1 & 2):1–29, 1992.
K. Benkerimi and P. M. Hill. Supporting transformations for the partial evaluation of logic programs. Journal of Logic and Computation, 3(5):469–486, October 1993.
D. Chan and M. Wallace. A treatment of negation during partial evaluation. In H. Abramson and M. Rogers, editors, Meta-Programming in Logic Programming, Proceedings of the Meta88 Workshop, June 1988, pages 299–318. MIT Press, 1989.
H. Fujita. An algorithm for partial evaluation with constraints. Technical Memorandum TM-0367, ICOT, 1987.
H. Fujita and K. Furukawa. A self-applicable partial evaluator and its use in incremental compilation. New Generation Computing, 6(2 & 3):91–118, 1988.
J. Gallagher. Tutorial on specialisation of logic programs. In Proceedings of PEPM'93, the ACM Sigplan Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 88–98. ACM Press, 1993.
J. Gallagher and M. Bruynooghe. Some low-level transformations for logic programs. In M. Bruynooghe, editor, Proceedings of Meta90 Workshop on Meta Programming in Logic, pages 229–244, Leuven, Belgium, 1990.
C. A. Gurr. A Self-Applicable Partial Evaluator for the Logic Programming Language Gdel. PhD thesis, Department of Computer Science, University of Bristol, January 1994.
J. Komorowksi. A Specification of an Abstract Prolog Machine and its Application to Partial Evaluation. PhD thesis, Linköping University, Sweden, 1981. Linköping Studies in Science and Technology Dissertations 69.
M. Leuschel. Self-applicable partial evaluation in Prolog. Master's thesis, K.U. Leuven, 1993.
J. W. Lloyd and J. C. Shepherdson. Partial evaluation in logic programming. The Journal of Logic Programming, 11:217–242, 1991.
T. Mogensen and A. Bondorf. Logimix: A self-applicable partial evaluator for Prolog. In K.-K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, pages 214–227. Springer-Verlag, 1992.
R. O'Keefe. On the treatment of cuts in Prolog source-level tools. In Proceedings of the Symposium on Logic Programming, pages 68–72. IEEE, 1985.
S. D. Prestwich. The PADDY partial deduction system. Technical Report ECRC-92-6, ECRC, Munich, Germany, 1992.
S. D. Prestwich. An unfold rule for full Prolog. In K.-K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, Workshops in Computing, University of Manchester, 1992. Springer-Verlag.
M. Proietti and A. Pettorossi. Semantics preserving transformation rules for Prolog. In Proceedings of the ACM Symposium on Partial Evaluation and Semantics based Program Manipulation, PEPM'91, Sigplan Notices, Vol. 26, N. 9, pages 274–284, Yale University, New Haven, U.S.A., 1991.
D. Sahlin. An Automatic Partial Evaluator for Full Prolog. PhD thesis, Swedish Institute of Computer Science, Mar. 1991.
D. Sahlin. Mixtus: An automatic partial evaluator for full Prolog. New Generation Computing, 12(1):7–51, 1993.
D. A. Smith. Partial evaluation of pattern matching in constraint logic programming languages. In N. D. Jones and P. Hudak, editors, ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 62–71. ACM Press Sigplan Notices 26(9), 1991.
A. Takeuchi and K. Furukawa. Partial evaluation of Prolog programs and its application to meta programming. In H.-J. Kugler, editor, Information Processing 86, pages 415–420, 1986.
H. Tamaki and T. Sato. Unfold/fold transformations of logic programs. In S.-å. TÄrnlund, editor, Proceedings of the Second International Conference on Logic Programming, pages 127–138, Uppsala, Sweden, 1984.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leuschel, M. (1994). Partial evaluation of the “real thing”. In: Fribourg, L., Turini, F. (eds) Logic Program Synthesis and Transformation — Meta-Programming in Logic. META LOPSTR 1994 1994. Lecture Notes in Computer Science, vol 883. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58792-6_8
Download citation
DOI: https://doi.org/10.1007/3-540-58792-6_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58792-7
Online ISBN: 978-3-540-49104-0
eBook Packages: Springer Book Archive