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
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho,A., Hoperoft,J., Ulhnan,J., The Design and Analysis of Computer Algorithms, Addison-Wesly, Reading, Mass., 1974.
Benkerimi,K., Lloyd,J., A Partial Evaluation Procedure for Logic Programs, Proc. 1990 North American Conf. on Logic Programming, Austin, November 1990, 343–358.
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.
Burstall,R., Darlington,J., A Transformation System for Developing Recursive Programs, JACM, Jan.1977, Vol. 24, No. 1, 44–67
Bruynooghe,M., De Schreye,D., Krekels,B., Compiling Control, J. Logic Programming, 1989, Vol. 6, Nos. 2–3, 135–162.
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.
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.
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.
Futamura,Y., Partial Evaluation of Computation Process–An Approach to a Compiler-Compiler, Systems,Computers,Control, 1971,Vol. 25, 45–50.
Gallagher,J., Bruynooghe,M., Some Low Level Transformations of Logic Programs, Proc. 2nd Workshop in Meta-Programming in Logic, Leuven, 1990, 229–244
Gallagher,J., Bruynooghe,M., The Derivation of an Algorithm for Program Specialization, New Generation Computing, 1991, Vol. 9, 305–333.
Garey,M., Tarjan,R., A Linear-Time Algorithm for Finding all Feedback Vertices, Information Processing Letters, 1978, Vol. 7, 274–276.
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.
Kawamura, T., Kanamori, T., Preservation of Stronger Equivalence in Unfold/Fold Logic Program Transformation, Proc. 4th Int. Conf. on FGCS, Tokyo,1988.
Kanamori, T., Kawamura, T., Abstract Interpretation Based on OLDT Resolution, J. Logic Programming, 1992 (to appear).
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.
Lever,J., Proving Program Properties by means of SLS-resolution, Proc. 8th Int. Conf. on Logic Programming, Paris, June 1991, 614–628.
Lloyd,L., Shepherdson J., Partial Evaluation in Logic Programming, J. Logic Programming, 1991, Vol. 11, Nos. 3–4, 217–242.
Lloyds, Foundations of logic Programming, Springer-Verlag, Berlin, 1987.
Plumer,L., Tenninaiion Proofs for Logic Programs, LNAI Vol.446, Springer-Verlag, 1990.
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.
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.
Seki,H., Unfold/Fold Transformation of stratified programs, J. Theoretical Computer Science, 1991, Vol. 86, 107–139.
Tamaki,H., Sato,T., Unfold/Fold Transformation of Logic Programs, Proc. 2nd International Conference on Logic Programming, Uppsala, 1984, 127–138.
Tamaki,H., Sato,T., OLD Resolution with Tabulation, Proc. 3rd Int. Conf. on Logic Programming, London, July 1986, 84–98.
Vielle,L., Recursive Query Processing: The power of Logic, Theoretical Computer Science, 1989, Vol. 69, No. 1, 1–53.
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
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