Advertisement

An application of abstract interpretation in source level program transformation

  • Daniel De Schreye
  • Maurice Bruynooghe
Abstract Interpretation In Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 348)

Abstract

We describe an application of abstract interpretation within the field of source-to-source program transformation for pure Horn clause logic programs. Using a very concrete setting, we aim to provide a comprehensible introduction to the technique of abstract interpretation, particularly suited for the novice in the field. Also, we argue that abstract interpretation is not only suited for applications in code optimization, but provides an excellent tool to support techniques in source level program transformation.

Keywords

Logic Program Logic Programming Abstract Interpretation Horn Clause Program Transformation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Biermann A., On the inference of Turing machines from sample computations, Artificial Intelligence, Vol. 3, 1972.Google Scholar
  2. [2]
    Brough D.R., Walker A., Some practical properties of logic programming interpreters, in Proc. FGCS conference, 1984, pp. 149–156.Google Scholar
  3. [3]
    Bruynooghe M., De Schreye D. and Krekels B., Compiling Control, Proc.Third International Symposium on Logic Programming, 1986, pp. 70–78.Google Scholar
  4. [4]
    Bruynooghe M., De Schreye D. and Krekels B., Compiling Control, J.Logic Programming, to appear.Google Scholar
  5. [5]
    Bruynooghe M., Janssens G., Callebout A., Demoen B., Abstract interpretation: towards the global optimisation of Prolog programs, Proc. Fourth International Symposium on Logic Programming, 1987.Google Scholar
  6. [6]
    Bruynooghe M., A framework for the abstract interpretation of logic programs, report CW62, 1987, K.U.Leuven.Google Scholar
  7. [7]
    Burstall R.M. and Darlington J., A transformation system for developing recursive programs, JACM, 24, 1977, pp. 44–67.Google Scholar
  8. [8]
    Clark K.I., McCabe F.G., Gregory S., IC-Prolog language features, Logic programming, ed. Clark/Tarnlund, 1982, pp. 254–266.Google Scholar
  9. [9]
    Colmerauer A., Prolog II, manuel de reference et modele theoretique, Marseille, 1982.Google Scholar
  10. [10]
    Cousot P., Cousot R., Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixpoints, in Proc. 4th ACM POPL symposium, 1977, pp. 238–252.Google Scholar
  11. [11]
    Darlington J., Pull H., A program development methodology based on a unified approach to execution and transformation, in Proc.workshop on partial evaluation and mixed computation, 1987, Denmark.Google Scholar
  12. [12]
    Debray S.K., Warren D.S., Automatic mode inferencing for Prolog programs, Proc.Third International Symposium on Logic Programming, 1986, pp. 78–88.Google Scholar
  13. [13]
    De Schreye D., Bruynooghe M. On the transformation of logic programs with instantiation based computation rules, J.Symbolic Computation, to appear.Google Scholar
  14. [14]
    Fronhofer B., Double work as a reason for inefficiency of programs, Technical report T.U.M. Munchen, 1987.Google Scholar
  15. [15]
    Fujita H., Abstract interpretation and partial evaluation of prolog programs, ICOT technical report, 1986.Google Scholar
  16. [16]
    Gallagher J., Codish M., Specialisation of Prolog and FCP programs using abstract interpretation, in Proceedings of the workshop on partial evaluation and mixed computation, 1987, Denmark.Google Scholar
  17. [17]
    Gallaire H. and Laserre C., A control meta language for logic programming, in LogicProgramming, eds. Clark L. and Tarnlund S.A., Academic Press, 1982, pp. 173–185.Google Scholar
  18. [18]
    Genesereth M.R. and Ginsberg M.L., Logic Programming, CACM 28(9), Sept. 1985, pp. 933–941.Google Scholar
  19. [19]
    Gregory S., Towards the compilation of annotated logic programs, Res.Report DOC80/16, June 1980, Imperial College.Google Scholar
  20. [20]
    Jones N.D., Sondergaard H., A semantics based framework for the abstract interpretation of Prolog, in Abstract interpretation of declarative languages, eds. Abramsky S. and Hankin C., Ellis Horwood, in print.Google Scholar
  21. [21]
    Kanamari T., Kawamura T., Analyzing success patterns of Logic programs by abstract hybrid interpretation, ICOT technical report, TR 279, 1987.Google Scholar
  22. [22]
    Mellish C.S., Abstract interpretation of prolog programs, in Proc. 3rd International Conference on Logic Programming, 1986, LNCS 225, Springer-Verlag, 1986, pp. 463–474.Google Scholar
  23. [23]
    Naish L., Automating control for logic programs, J. Logic Programming 2, 1985, pp. 167–183.Google Scholar
  24. [24]
    Narain S., A technique for doing lazy evaluation in Logic, J.Logic Programming 3 (3), 1986, pp. 259–276.Google Scholar
  25. [25]
    Pelhat S., Analysis and control of recursivity in Prolog programs, Technical report CRIL, Universite de Paris-sud, 1987.Google Scholar
  26. [26]
    Pereira L.M., Logic control with logic, in Implementations of Prolog, ed. Cambell, Ellis, Horwood, 1984, pp.177–193.Google Scholar
  27. [27]
    Sato T., Tamaki H., Transformational logic program synthesis, FGCS '84, Tokyo, 1984.Google Scholar
  28. [28]
    Turchin V.F., The concept of a supercompiler, ACM Transactions on Programming Languages and Systems 8 (3), 1986, pp. 292–325.Google Scholar
  29. [29]
    Van Hentenryck P., Consistency techniques in logic programming, Ph.D. thesis FUNDF, Namur, Belgium, 1987.Google Scholar
  30. [30]
    Warren D.H.D., Coroutining facilities for Prolog, implemented in Prolog, DAI working paper, Edinburgh, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Daniel De Schreye
    • 1
  • Maurice Bruynooghe
    • 1
  1. 1.Department of Computer ScienceKatholieke Universiteit LeuvenHeverleeBelgium

Personalised recommendations