Skip to main content

Deriving Transformations of Logic Programs Using Abstract Interpretation

  • Chapter
Logic Program Synthesis and Transformation

Part of the book series: Workshops in Computing ((WORKSHOPS COMP.))

Abstract

An extension of OLDT based abstract interpretation for definite logic programs is presented. The extension can abstract the behavior of programs under non standard computation rules, i.e. coroutining. The abstract behavior is captured in an EOLDT structure. It is shown that this EOLDT structure can guide an automatic equivalence preserving fold/unfold transformation. By making the appropriate choices during the abstract interpretation phase, one can obtain EOLDT structures which lead to a very broad range of transformations. It is argued that the approach provides a unifying framework for a large class of transformations.

supported by the Belgian “Diensten voor Programmatic van Wetenschapsbeleid”, under the contract AUO2/07 (AIXX666)

Permanent address: Institute for Informatics Problems (IPIAN), Russian Academy of Science, 30/4 Vavilov St., 117900 Moscow, Russia, bing@sms.ccas.msk.su

supported by the Belgian National Fund for Scientific Research

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho,A., Hoperoft,J., Ulhnan,J., The Design and Analysis of Computer Algorithms, Addison-Wesly, Reading, Mass., 1974.

    MATH  Google Scholar 

  2. Benkerimi,K., Lloyd,J., A Partial Evaluation Procedure for Logic Programs, Proc. 1990 North American Conf. on Logic Programming, Austin, November 1990, 343–358.

    Google Scholar 

  3. Boulanger,D., Deep Logic Program Transformation Using Abstract Interpretation, Proc. 1st and 2nd Russian Conf. on Logic Programming, LNAI, Vol.592, Springer-Verlag, 1992, 79–101.

    Google Scholar 

  4. Burstall,R., Darlington,J., A Transformation System for Developing Recursive Programs, JACM, Jan.1977, Vol. 24, No. 1, 44–67

    Article  MathSciNet  MATH  Google Scholar 

  5. Bruynooghe,M., De Schreye,D., Krekels,B., Compiling Control, J. Logic Programming, 1989, Vol. 6, Nos. 2–3, 135–162.

    Article  MATH  Google Scholar 

  6. Debray,S., Unfold/Fold Transformations and Loop Optimization of Logic Programs, Proc. SIGPLAN88 Conf. on Programming Language Design and Implementation, SIGPLAN Notices, July 1988, Vol. 23, No. 7, 297–307.

    Google Scholar 

  7. DMB91]De Schreye,D., Martens,B., Sablon,G., Bruynooghe,M., Compiling Bottom-Up and Mixed Derivations into Top-Down Executable Logic Programs, J. Automated Reasoning, 1991, 337–358.

    Google Scholar 

  8. Falaschi,M., Levi,G., Martelli,M., Palamidessi,C., Declarative Modelling of the Operational Behavior of Logic Languages, Theoretical Computer Science, 1989, Vol. 69, No. 3, 289–318.

    Article  MathSciNet  MATH  Google Scholar 

  9. Futamura,Y., Partial Evaluation of Computation Process–An Approach to a Compiler-Compiler, Systems,Computers,Control, 1971,Vol. 25, 45–50.

    Google Scholar 

  10. Gallagher,J., Bruynooghe,M., Some Low Level Transformations of Logic Programs, Proc. 2nd Workshop in Meta-Programming in Logic, Leuven, 1990, 229–244

    Google Scholar 

  11. Gallagher,J., Bruynooghe,M., The Derivation of an Algorithm for Program Specialization, New Generation Computing, 1991, Vol. 9, 305–333.

    Article  Google Scholar 

  12. Garey,M., Tarjan,R., A Linear-Time Algorithm for Finding all Feedback Vertices, Information Processing Letters, 1978, Vol. 7, 274–276.

    Article  MathSciNet  MATH  Google Scholar 

  13. Gallagher, J., Codish M., Shapiro E., Specialization of Prolog and FCP Programs Using Abstract Interpretation, New Generation Computing, 1988, Vol. 6, Nos. 2–3, 159–186.

    Article  MATH  Google Scholar 

  14. Kawamura, T., Kanamori, T., Preservation of Stronger Equivalence in Unfold/Fold Logic Program Transformation, Proc. 4th Int. Conf. on FGCS, Tokyo,1988.

    Google Scholar 

  15. Kanamori, T., Kawamura, T., Abstract Interpretation Based on OLDT Resolution, J. Logic Programming, 1992 (to appear).

    Google Scholar 

  16. Kemp,R., Ringwood,G., An Algebraic Framework for Abstract Interpretation of Defmite Programs, Proc. 1990 North American Conf. on Logic Programming, Austin, Nov. 1990, 516–530.

    Google Scholar 

  17. Lever,J., Proving Program Properties by means of SLS-resolution, Proc. 8th Int. Conf. on Logic Programming, Paris, June 1991, 614–628.

    Google Scholar 

  18. Lloyd,L., Shepherdson J., Partial Evaluation in Logic Programming, J. Logic Programming, 1991, Vol. 11, Nos. 3–4, 217–242.

    Google Scholar 

  19. Lloyds, Foundations of logic Programming, Springer-Verlag, Berlin, 1987.

    Book  MATH  Google Scholar 

  20. Plumer,L., Tenninaiion Proofs for Logic Programs, LNAI Vol.446, Springer-Verlag, 1990.

    Google Scholar 

  21. Proietti,M., Pettorossi,A., Construction of Efficient Logic Programs by Loop Absorption and Generalization, Proc. 2nd Workshop in Meta-Programming in Logic, Leuven, 1990, 57–81.

    Google Scholar 

  22. Proietti,M., Pettorossi,A., Unfolding–Definition–Folding, In this Order, For Avoiding Unnecessary Variables in Logic Programs, Proc. 3rd Int. Symp. on Programming Languages Implementation and Logic Programming, Aug. 1991, LNCS No.528, Springer-Verlag, 1991, 347–358.

    Google Scholar 

  23. Seki,H., Unfold/Fold Transformation of stratified programs, J. Theoretical Computer Science, 1991, Vol. 86, 107–139.

    Article  MathSciNet  MATH  Google Scholar 

  24. Tamaki,H., Sato,T., Unfold/Fold Transformation of Logic Programs, Proc. 2nd International Conference on Logic Programming, Uppsala, 1984, 127–138.

    Google Scholar 

  25. Tamaki,H., Sato,T., OLD Resolution with Tabulation, Proc. 3rd Int. Conf. on Logic Programming, London, July 1986, 84–98.

    Google Scholar 

  26. Vielle,L., Recursive Query Processing: The power of Logic, Theoretical Computer Science, 1989, Vol. 69, No. 1, 1–53.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag London

About this chapter

Cite this chapter

Boulanger, D., Bruynooghe, M. (1993). Deriving Transformations of Logic Programs Using Abstract Interpretation. 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_8

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-3560-9_8

  • Publisher Name: Springer, London

  • Print ISBN: 978-3-540-19806-2

  • Online ISBN: 978-1-4471-3560-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics