Advertisement

New Generation Computing

, Volume 7, Issue 2–3, pp 273–324 | Cite as

An abstract interpretation scheme for identifying inherent parallelism in logic programs

  • Arvind K. Bansal
  • Leon S. Sterling
Special Issue Program Analysis and Optimization

Abstract

We describe a new scheme for the abstract interpretation of logic programs. The scheme was developed to identify and integrate different forms of inherent parallelism in logic programs at compile time. The scheme has four components: generalization, abstract unification, summarization and concretization, algorithms for which are discussed. The abstract domain for interpretation consists of type expressions which are used as program modes. The generated mode information has been applied to identify different classes of procedures exhibiting different forms of inherent parallelism. The mode information has also been applied for detection of guards and producer-consumer relationship. The advantages and limitations of our resulting scheme are discussed.

Keywords

Abstract Interpretation Determinacy Procedure Classification Committed-Choice Logic Program Mode Parallelism Type Compilation Transformation 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1).
    Bansal, A. K., “Incorporating Parallelism in Logic Programs by Program Transformation,”Ph. D. thesis, Department of Computer Science, Case Western Reserve University, Cleveland, OH 44106, USA, 1988. Also available as University Microfilms International Publications, Ann Arbor, Michigan, USA, 1989.Google Scholar
  2. 2).
    Bansal, A. K. and Sterling L., “On Source-to-Source Transformation of Sequential Logic Programs to AND-parallelism,”Proceedings of the International Conference on Parallel Processing, St. Charles, Illinois, USA, pp. 795–802, 1987.Google Scholar
  3. 3).
    Bansal, A. K. and Sterling, L. S., “Compiling Enumerate-and-Filter Programs for Efficient Execution under Committed-choice AND-parallelism,”Proceedings of the International Conference on Parallel Processing, St. Charles, Illinois, USA, pp. 22–26, 1988.Google Scholar
  4. 4).
    Bansal A. K. and Sterling, L. S., “An Abstract Interpretation Scheme Based on Type Expressions,”Proceedings of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, pp. 422–429, 1988.Google Scholar
  5. 5).
    Bruynooghe, M., “Compile Time Garbage Collection or How to Transform Programs in an Assigment-free Language into Code with Assignments, Program Specification and Transformation,”Proceedings of the IFIP conference on Program Specification and Transformation (Meertens, L. G. L. T. ed.), North Holland, pp. 113–130, 1987.Google Scholar
  6. 6).
    Bruynooghe, M., Jenssens, G., Gallebaut, A., and Demoen, B., “Abstract Interpretation: Towards the Global Optimization of PROLOG Programs,”Proceedings of the Fourth Symposium on Logic Programming, San Francisco, USA, pp. 192–204, 1987.Google Scholar
  7. 7).
    Bruynooghe, M. and Jenssens, G., “An Instance of Abstract Interpretation Integrating Type and Mode Inferencing,”Proceedings of the Fifth International Conference of Logic Programming, Seattle, USA, pp. 669–683, 1988.Google Scholar
  8. 8).
    Cardelli, L. and Wegner, P., “On Understanding Types, Data Abstraction and Polymorphism,”ACM Computing Surveys, Volume 17, Number 4, pp. 471–522, 1985.CrossRefGoogle Scholar
  9. 9).
    Chang, J. H., Despain, A. M., and Degroot, D., “AND-parallelism of Logic Programs Based on Static Data Dependency Analysis,”Digest of Papers of COMPCON, pp. 218–225, 1985.Google Scholar
  10. 10).
    Debray, S. K. and Warren, D. S., “Detection and Optimization of Functional Computations in Prolog,”Proceedings of the Third International Conference of Logic Programming, London, UK, pp. 490–504, 1986.Google Scholar
  11. 11).
    Debray, S. K., “Automatic Mode-inference for Prolog Programs,”Proceedings of the International Symposium of Logic Programming, Salt Lake City, Utah, USA, pp. 78–88, 1986.Google Scholar
  12. 12).
    Debray, S. K., “Flow Analysis of Logic Programs over Abstract Domains of Infinite Height,”TR 88-21, University of Arizona, USA, 1988.Google Scholar
  13. 13).
    Debray, S. K.,Personal communications, 1989.Google Scholar
  14. 14).
    Dijkstra, E. W., “Guarded Commands, Nondeterminacy and Formal Derivations of Programs,”CACM, 18(8), pp. 453–457, 1975.MATHMathSciNetGoogle Scholar
  15. 15).
    Haridi, S. and Brand, P., “ANDORRA Prolog—An Integration of Prolog and Committed-choice Languages,”Proceedings of the International Conference on Fifth Generation Computer Systems, Tokyo, Japan, pp. 745–754, 1988.Google Scholar
  16. 16).
    Kowalski, R.,Logic for Problem Solving, Elsevier-North Holland, 1979.MATHGoogle Scholar
  17. 17).
    Lloyd, J. W.,Foundations of Logic Programming, Springer-Verlag, New York, 1984.MATHGoogle Scholar
  18. 18).
    Lusk, E., Butler, R., Disz, T., Olson, R., Overbeek R., Stevens, R., Warren, D. H. D., Calderwood, A., Szerdi P., Haridi S., Brand, P., Carlsson, M., Ciepielewski, A., and Hausman, B., “The Aurora OR-parallel Prolog System,”Proceedings of the International Conference of the Fifth Generation Computer Systems, Tokyo, Japan, pp. 819–830, 1988.Google Scholar
  19. 19).
    Mellish, C. S., “An Automatic Generation of Mode Declarations for Prolog Programs,”DAI Research Paper, 163, Department of Artificial Intelligence, University of Edinburugh, UK, 1981.Google Scholar
  20. 20).
    Mellish, C. S., “Some Global Optimizations for a Prolog Compiler,”Journal of Logic Programming, Vol. 2, Number 1, pp. 43–66, 1985.MATHCrossRefGoogle Scholar
  21. 21).
    Mellish, C. S., “Abstract Interpretation of Prolog Programs,”Proceedings Third International Conference of Logic Programming, London, UK, 1986.Google Scholar
  22. 22).
    Milner, R., “A Theory of Polymorphism in Programming,”Journal of Logic Programming, Vol. 2, Number 1, pp. 43–66, 1985.CrossRefGoogle Scholar
  23. 23).
    Mishra, P. and Reddy, U. S., “Declaration Free Type Checking,”Conference Record of the Twelth ACM Symposium on Principles of Programming Languages, New Orleans, USA, pp. 7–21, 1985.Google Scholar
  24. 24).
    Mycroft, A. and O’Keefe, R. A., “A Polymorphic Type System for Prolog,”Artificial Intelligence, 23, pp. 295–307, 1984.MATHCrossRefMathSciNetGoogle Scholar
  25. 25).
    U. S. Reddy, “Transformation of Logic Programs into Functional Programs,”Proceedings of the International Symposium on Logic Programming, IEEE, pp. 187–197, 1984.Google Scholar
  26. 26).
    Sawamura, H. and Takeshima, T., “Recursive Unsolvability of Determinacy Solvable Cases of Determinacy and Their Application of Prolog Optimization,”Proceedings of the Symposium on Logic Programming, Boston, USA, pp. 200–207, 1985.Google Scholar
  27. 27).
    Z. Somogyi, “A System of Precise Modes for Logic Programs,”Proceedings of the Fourth International Conference on Logic Programming, Melbourne, Australia, pp. 769–787, 1987.Google Scholar
  28. 28).
    Seki, H. and Furukawa, K., “Notes on Transformation Techniques for Generate-and-Test Logic Programs,”Proceedings of the IEEE Symposium on Logic Programming, San Francisco, USA, pp. 215–223, 1987.Google Scholar
  29. 29).
    Shapiro, E., (ed.),Concurrent Prolog-Collected Papers, Volume I and II. MIT Press, Cambridge, Massachussets, 1987.Google Scholar
  30. 30).
    Sondergaard, H., “Abstract Interpretation of Logic Programs,”DIKU Project 86-7-10, University of Copenhagen, 1987.Google Scholar
  31. 31).
    Sterling, L. and Shapiro, E.,The Art of Prolog, MIT Press, 1986.Google Scholar
  32. 32).
    Takeuchi, A. and Furukawa, K., “Parallel Logic Programming Languages,”Proceedings of the Third International Conference on Logic Programming, London, UK,Lecture Notes in Computer Science, Vol. 225, Springer Verlag, New York, pp. 242–254, 1986.Google Scholar
  33. 33).
    Takeuchi, A., Takashi, K., and Shimizu, H., “A Description Language with AND/OR Parallelism for Concurrent Systems and Its Stream Based Realization,”ICOT Technical Report, TR-229, ICOT, Tokyo, Japan, 1987.Google Scholar
  34. 34).
    Tamaki, H. and Sato, T., “Unfold/Fold Transformation of Logic Programs,”Proceedings of the Second International Conference on Logic Programming, Uppsala, Sweden, pp. 127–138, 1984.Google Scholar
  35. 35).
    Ueda, K., “Making Exhausitive Search Programs Deterministic II,”Proceedings of the Fourth International Conference on Logic Programming, Melbourne, Australia, pp. 356–375, 1987.Google Scholar
  36. 36).
    Warren, D. H. D., “Implementing Prolog-compiling predicate Logic Programs,”DAI Research Reports No. 39, 40, University of Edinburugh, UK, 1977.Google Scholar
  37. 37).
    Warren, D. H. D., “An Abstract Prolog Instruction Set,”Technical Report, 309, SRI International, USA, 1983.Google Scholar
  38. 38).
    Warren, D. H. D., “The SRI Model for OR-parallel Execution—Abstract Design and Implementation,”Proceedings of the IEEE Symposium of Logic Programming, San Francisco, USA., pp. 92–103, 1987.Google Scholar
  39. 39).
    Warren, R., Hermenegildo, M. and Debray, S. K., “On the Practicality of Global Flow Analysis of Logic Programs,”Proceedings of the Fifth International Conference on Logic Programming, Seattle, USA, pp. 684–699, 1988.Google Scholar
  40. 40).
    Yang, R. and Aiso, H., “P-Prolog: A Parallel Logic Language Based on Exclusive Relation,”Proceedings of the Third International Conference on Logic Programming, London, UK, pp. 255–269, 1986.Google Scholar
  41. 41).
    Zobel, J., “Derivation of Polymorphic Types for Prolog Programs,”Proceedings of the Fourth International Conference of Logic Programming, Melbourne, Australia, pp. 817–838, 1987.Google Scholar

Copyright information

© Ohmsha, Ltd. and Springer 1990

Authors and Affiliations

  • Arvind K. Bansal
    • 1
  • Leon S. Sterling
    • 2
  1. 1.Department of Mathematical SciencesKent State UniversityUSA
  2. 2.Department of Computer Engg. and ScienceCase Western Reserve UniversityUSA

Personalised recommendations