Skip to main content
Log in

Mixtus: An automatic partial evaluator for full Prolog

  • Regular Papers
  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

A partial evaluator for Prolog takes a program and a query and return a program specialized for all instances of that query. The intention is that the generated program will execute more efficiently than the original one for those instances.

This paper presents “Mixtus”, an automatic partial evaluator forfull Prolog, i.e. including non-logical features such as cut, assert, var, write etc. willautomatically generate a program given only an input program and a query.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Benkerimi, K. and Lloyd, J. W., “A Procedure for the Partial Evaluation of Logic Programs”,Tech. Rept. TR-89-04, Computer Science Department, University of Bristol, May 1989.

  2. Partial Evaluation and Mixed Computation (D. Bjørner, A. P. Ershov and N. D. Jones eds.), Proceedings from Workshop in Gammel Avernæs, Denmark, North-Holland, Oct. 1988.

  3. Bol, R. N., “Towards More Efficient Loop Checks”, inProceedings of the 1990 North American Conference on Logic Programming, MIT Press, pp. 465–479, 1990.

  4. Burstall, R. M. and Darlington, J., “A Transformation System for Developing Recursive Programs,”Journal of ACM, 24, 1977.

  5. Bugliesi, M. and Russo, F., “Partial Evaluation in Prolog: Some Improvements about Cut,” inProceedings of the 1989 North American Conference on Logic Programming, MIT Press, 1989.

  6. Carlsson, M. et al., “Industrial SICStus Prolog User’s Manual,”SICS Technical Report, T91:11, SICS, Sweden, 1991.

    Google Scholar 

  7. Ershov, A. and Jones, N. D., “Two Characterizations of Partial Evaluation and Mixed Computation,” in Ref. 2),Partial Evaluation of Mixed Computation, North-Holland, pp. xv–xxi, 1988.

  8. New Generation Computing, 6, Special issue: selected papers from the Workshop on Partial Evaluation and Mixed Computation (K. Fuchi, ed.), Ohmsha, Ltd./Springer-Verlag, 1988.

  9. Fugita, H., “An Algorithm for Partial Evaluation with Constrains,”ICOT Technical Memorandum: TM-0367, 1987.

  10. Kahn, K. M., “A Partial Evaluator of Lisp Programs Written in Prolog,”First International Logic Programming Conference, Marseille, France, pp 19–25, 1982.

  11. Kahn, K. M. and Carlsson, M., “The Compilation of Prolog Programs without the Use of a Prolog Compiler,” inProceedings of the International Conference on Fifth Generation Computer Systems, Tokyo, ICOT, 1984.

  12. Komorowski, H. J., “A Specification of an Abstract Prolog Machine and Its Application to Partial Evaluation,”Ph.D thesis, No. 69, Software Systems Research Center, Linköping University, 1981.

  13. Komorowski, H. J., “Synthesis of Programs in the Framework of Partial Deduction,”Ser. A, No. 81, Departments of Computer Science & Mathematics, Åbo Akademi, Finland, 1989.

    Google Scholar 

  14. Kursawe, P., “Pure Partial Evaluation and Instantiation,”Proceedings from Workshop in Gammel Avernæs, Denmark, North-Holland, Oct 1988.

  15. Lakhotia, A. and Sterling, L., “Development of a Prolog Partial Evaluation System,”Technical Report, Department of Computer Engineering and Science, Case Western Reserve University, 1989.

  16. Lakhotia, A., “ProMiX: A Prolog Partial Evaluation System,”Technical Report, CES-89-05, Department of Computer Engineering and Science, Case Western Reserve University, 1989.

  17. Lakhotia, A., “A Workbench for Developing Logic Programs by Stepwise Enhancement,”Technical Report, TR-89-163a, Center for Automation and Intelligent Systems Research, Case Western Reserve University, 1989.

  18. Lakhotia, A. and Sterling, L., “Composing Recursive Logic Programs with Clausal Join” inNew Generation Computing 6, 1988.

  19. Lakhotia, A. and Sterling, L., “ProMiX: A Prolog Partial Evaluation System,” inThe Practice of Prolog, MIT Press, 1990.

  20. Lam, J., “Control Structures in Partial Evaluation of Pure Prolog,”M. Sc. thesis, Department of Computational Science, University of Saskatchewan, Canada, 1989.

    Google Scholar 

  21. Lam, J. and Kusalik, A., “A Partial Evaluation of Partial Evaluators for Pure Prolog,”Research Report, 90-9, Department of Computational Science, University of Saskatchewan, Canada, 1990.

    Google Scholar 

  22. Levi, G. and Sardu, G., “Partial Evaluation of Metaprograms in a ‘Multiple Worlds’ Logic Language,”New Generation Computing, 6, 1988.

  23. Lloyd, J. W. and Shepherdson, J. C., “Partial Evaluation in Logic Programming,”Technical Report, CS-87-09, Computer Science Department, University of Bristol, Dec. 1987.

  24. Owen, S., “Issues in the Partial Evaluation of Meta-Interpreters,” inMeta-Programming in Logic Programming, The MIT Press, pp. 319–339, 1989.

  25. Pereira, F. C. N. and Shieber, S. M.,Prolog and Natural-Language Analysis, Center for the Study of Language and Information, Leland Stanford Junior University, 1987.

  26. Pereira, F. C. N. and Warren, D. H. D., “Definite Clause Grammars Compared with Augmented Transition Networks,”Research Report, No. 58, Department of Artificial Intelligence, University of Edinburgh, Oct. 1978.

  27. Plotkin, G. D., “A Note on Inductive Generalisation,” inMachine Intelligence, 5 (B. Meltzer and D. Michie, eds.) American Elsevier, New York, pp. 153–163, 1970.

    Google Scholar 

  28. Prestwich, S., “Partial Evaluation by Unfold/Fold with Generalisation,”ECRC, München, Nov. 1990.

    Google Scholar 

  29. Reynolds, J. C., “Transformational Systems and the Algebraic Structure of Atomic Formulas,” inMachine Intelligence, 5 (B. Meltzer and D. Michie, eds.), American Elsevier, New York, pp. 135–152, 1970.

    Google Scholar 

  30. Robinson, J. A., “A Machine-Oriented Logic Based on the Resolution Principle,”Journal of the ACM, 12, pp. 23–41, 1965.

    Article  MATH  Google Scholar 

  31. Sahlin, D., “Finding the Least Fixed Point Using Wait-Declarations in Prolog,” inProceedings of PLILP’90, Linköping, Sweden,Lecture Notes in Computer Science, 456, Springer-Verlag, pp. 151–158, 1990.

  32. Sahlin, D., “The Mixtus Approach to Automatic Partial Evaluation of Full Prolog,” inProceedings of the North American Conference on Logic Programming, MIT Press, 1990.

  33. Sahlin, D., “An Automatic Partial Evaluator for Full Prolog,”SICS Dissertation Series, 04, 1991.

  34. Sahlin, D., “Determinacy Analysis for Full Prolog,” inProceedings of the ACM/IFIP Symposium on Partial Evaluation and Semantics Based Program Manipulation, ACM Press, 1991.

  35. Seki, H., “Unfold/Fold Transformation of Stratified Programs,”Proceedings of the Sixth International Conference on Logic Programming, The MIT Press, pp. 554–568, 1989.

  36. Sestoft, P. and Zamulin, A., “Annotated Bibliography on Partial Evaluation and Mixed Computation,” inNew Generation Computing, 6, andPartial Evaluation of Mixed Computation, North-Holland, 1988.

  37. Smith, D. and Hickey, T., “Partial Evaluation of CLP Language,” inProceedings of the North American Conference on Logic Programming, MIT Press, 1990.

  38. Smith, D. A. and Hickey, T., “Partial Evaluation of CLP (FJ),”Technical Report, CS-90-148, Computer Science Department, Brandeis University, March 1990.

  39. Sterling, L. and Beer, R. D., “Incremental Flavor-Mixing of Meta-Interpreters for Expert System Construction,”Proceedings of the Third Logic Programming Symposium, Salt Lake City, Utah, 1986.

  40. Sterling, L.,The Practice of Prolog, MIT Press, 1990.

  41. Takeuchi, A. and Furukawa, F., “Partial Evaluation of Prolog Programs and Its Application to Meta Programming,”Information Processing, 86, Elsevier Science Publishers, 1986.

  42. Tamaki, H. and Sato, T., “Unfold/Fold Transformations of Logic Programs,”Proceedings of the Second International Conference on Logic Programming, Uppsala, Sweden, pp. 127–138, 1984.

  43. Venken, R., “A Prolog Meta-Interpreter for Partial Evaluation and Its Application to Source-to-Source Transformation and Query Optimisation,”Proceedings of the European Conference on Artificial Intelligence, Pisa, 1984.

  44. Venken, R., “A Partial Evaluation System for Prolog: Some Practical Considerations,” inNew Generation Computing, 6, 1988.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dan Sahlin.

Additional information

Dan Sahlin, Ph. D.: He has an M. Sc. in Engineering Physics (1980) and a Ph. D. in Computer Science (1991), both from the Royal Institute of Technology, Stockholm. In 1980 he joined the newly formed logic programming group at the Royal Institute and mostly worked on implementation issues for Prolog, such as garbage collection. In 1985 he moved to SICS (Swedish Institute of Computer Science) where he worked on theorem provers for constructive logic. His thesis presented an automatic partial evaluator for Prolog. His present research concerns partial evaluation and program analysis for the Andorra Kernel Language (AKL).

About this article

Cite this article

Sahlin, D. Mixtus: An automatic partial evaluator for full Prolog. New Gener Comput 12, 7–51 (1993). https://doi.org/10.1007/BF03038271

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03038271

Keywords

Navigation