Abstract
Programming in Prolog is like programming in any other language, in that much of the difficulty is caused by having to manage the complexity of the development process. The adoption of appropriate programming conventions can help by promoting clearer and more easily maintained programs. However, such conventions often result in inefficient programs. In this paper we demonstrate how partial evaluation can be used to overcome this drawback in the case of three specific programming conventions.
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
Clocksin, W. F., and C. S. Mellish, Programming in Prolog, Springer-Verlag (1981).
Demoen, B., On the transformation of a Prolog program to a more efficient binary program, Proceedings of the workshop on logic program synthesis and transformation, 1992, Springer-Verlag Workshops in Computing (this volume).
Gallagher, J., A system for specialising logic programs, Report TR-91–32, Computer Science Department, University of Bristol, UK, 1991.
Gallagher, J., and D. A. de Waal, Specialisation in context, Proceedings of the workshop on logic program synthesis and transformation, 1992, Springer-Verlag Workshops in Computing (this volume).
Jones, J., Prolog, data abstraction, and program transformation: a preliminary report, Research report 91/1, Department of Computer Science, University of Hull, UK, 1991.
Komorowski, J., Towards a programming methodology founded on partial deduction, Proceedings of the 1990 European Conference on Artificial Intelligence, L. C. Aiello ( Ed. ), Pitman (1990), 404–409.
Lakhotia, A., Incorporating `programming techniques’ into Prolog programs, Logic programming: Proceedings of the 1989 North American Conference, E. L. Lush and R. A. Overbeek ( Eds. ), MIT Press (1989), 426–440.
Lakhotia, A., and L. Sterling, ProMiX: A Prolog partial evaluation system, in The Practice of Prolog, L. Sterling ( Ed. ), MIT Press (1990), 137–179.
Lakhotia, A., and L. Sterling, How to control unfolding when specializing interpreters, New Generation Computing 8 (1990), 61–70.
Lakhotia, A., Private communication by email, 13th May, 1991.
Lloyd, J. W., and J. C. Shepherdson, Partial evaluation in logic programming, Journal of Logic Programming 11 (1991), 217–242.
Owen, S., Issues in the partial evaluation of meta-interpreters, in Meta-Programming in Logic Programming, H. Abramson and M. H. Rogers (Eds.) MIT Press (1989), 319–339.
Prestwich, S., An unfold rule for full Prolog, Proceedings of the workshop on logic program synthesis and transformation, 1992, Springer-Verlag Workshops in Computing (this volume).
Proietti, M., and A. Pettorossi, Semantics preserving transformation rules for Prolog, Symposium on partial evaluation and semantics-based program manipulation, SIGPLAN Notices 26 (1991), 274–284.
Sestoft, P., and A. V. Zamulin, Annotated bibliography on partial evaluation and mixed computation, New Generation Computing 6 (1988), 309–354.
Sterling, L., and E. Shapiro, The Art of Prolog, MIT Press (1986).
Venken, R., and B. Demoen, A partial evaluation system for Prolog: some practical considerations, New Generation Computing 6 (1988), 279–290.
Warren, D. S., Memoing for logic programs, Communications of the ACM, 35 (3) (1992), 94–111.
Wilk, P. F., Comment in C-Prolog library file `Unfold’, dated May, 1984.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1993 Springer-Verlag London
About this chapter
Cite this chapter
Jones, J. (1993). Applications of Unfolding in Prolog Programming. In: Lau, KK., Clement, T.P. (eds) Logic Program Synthesis and Transformation. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3560-9_13
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3560-9_13
Publisher Name: Springer, London
Print ISBN: 978-3-540-19806-2
Online ISBN: 978-1-4471-3560-9
eBook Packages: Springer Book Archive