Advertisement

A Model for Inter-module Analysis and Optimizing Compilation

  • Francisco Bueno
  • Manuel Hermenegildo
  • Germán Puebla
  • María García de la Banda
  • Kim Marriott
  • Peter J. Stuckey
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2042)

Abstract

Recent research into the implementation of logic programming languages has demonstrated that global program analysis can be used to speed up execution by an order of magnitude. However, currently such global program analysis requires the program to be analysed as a whole: separate compilation of modules is not supported. We describe and empirically evaluate a simple model for extending global program analysis to support separate compilation of modules. Importantly, our model supports context-sensitive program analysis and multi-variant specialization of procedures in the modules.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    T. Armstrong, K. Marriott, P. J. Schachte, and H. Søndergaard. Boolean functions for dependency analysis: Algebraic properties and efficient representation. In Proceedings of the 1st International Static Analysis Symposium, B. Le Charlier, Ed. Lecture Notes in Computer Science, vol. 864. Springer-Verlag, Berlin, 266–280, 1994.Google Scholar
  2. 2.
    F. Bueno, M. García de la Banda, M. Hermenegildo, K. Marriott, G. Puebla, and P. J. Stuckey. Inter-module Analysis and Optimizing Compilation. Department of Computer Science and Software Engineering, University of Melbourne, Forthcoming Technical Report, 2001.Google Scholar
  3. 3.
    F. Bueno, M. García de la Banda, M. Hermenegildo, and K. Muthukumar. Automatic compile-time parallelization of logic programs for restricted, goal-level, independent and-parallelism. Journal of Logic Programming 38, 2, 165–218.Google Scholar
  4. 4.
    M. Codish, S. K. Debray, and R. Giacobazzi. Compositional analysis of modular logic programs. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL’93, pages 451–464, Charleston, South Carolina, 1993. ACM.Google Scholar
  5. 5.
    P. Cousot and R. Cousot. Abstract Interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Fourth ACM Symposium on Principles of Programming Languages, 238–252, 1977.Google Scholar
  6. 6.
    S. I. Feldman. Make-a program for maintaining computer programs. Software-Practice and Experience, 1979.Google Scholar
  7. 7.
    M. Hermenegildo, G. Puebla, K. Marriott, and P. J. Stuckey. Incremental analysis of constraint logic programs. ACM Transactions on Programming Languages and Systems, 22(2):187–223, 2000.CrossRefGoogle Scholar
  8. 8.
    A. Kelly, A. Macdonald, K. Marriott, H. Søndergaard, and P. J. Stuckey. Optimizing compilation for CLP(R). ACM Transactions on Programming Languages and Systems, 20(6):1223–1250, 1998.CrossRefGoogle Scholar
  9. 9.
    K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2/3):315–347, July 1992.zbMATHCrossRefGoogle Scholar
  10. 10.
    G. Puebla and M. Hermenegildo. Abstract multiple specialization and its application to program parallelization. J. of Logic Programming. Special Issue on Synthesis, Transformation and Analysis of Logic Programs, 41(2&3):279–316, 1999.zbMATHMathSciNetGoogle Scholar
  11. 11.
    G. Puebla and M. Hermenegildo. Some issues in analysis and specialization of modular Ciao-Prolog programs. In [20].Google Scholar
  12. 12.
    A. Rountev, B. G. Ryder, and W. Landi. Data-flow analysis of program fragments. In Proceedings of ESEC/FSE’ 99, volume 1687 of LNCS, pages 235–252. Springer-Verlag, 1999.Google Scholar
  13. 13.
    Z. Shao and A. Appel. Smartest recompilation. In ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages POPL’93, pages 439–450, Charleston, South Carolina, 1993. ACM.Google Scholar
  14. 14.
    R. W. Schwanke and G. E. Kaiser. Smarter recompilation. ACM Transactions on Programming Languages and Systems, 10(4):627–632, 1988.CrossRefGoogle Scholar
  15. 15.
    Z. Somogyi, F. Henderson and T. Conway. The execution algorithm of Mercury: an efficient purely declarative logic programming language. Journal of Logic Programming, 29(1-3):17–64, 1996.zbMATHCrossRefGoogle Scholar
  16. 16.
    W. Tichy. Smart recompilation. ACM Transactions on Programming Languages and Systems, 8(3):273–291, 1986.CrossRefGoogle Scholar
  17. 17.
    W. Vanhoof and Bruynooghe. Towards modular binding-time analysis for firstorder Mercury. In [20].Google Scholar
  18. 18.
    H. Sondergaard. An application of abstract interpretation of logic programs: occur check reduction. In European Symposium on Programming, LNCS 123, pages 327-338. Springer-Verlag, 1986.Google Scholar
  19. 19.
    W. Winsborough. Multiple specialization using minimal-function graph semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.zbMATHCrossRefMathSciNetGoogle Scholar
  20. 20.
    Special Issue on Optimization and Implementation of Declarative Programming Languages, volume 30 of Electronic Notes in Theoretical Computer Science. Elsevier-North Holland, March 2000.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Francisco Bueno
    • 1
  • Manuel Hermenegildo
    • 1
  • Germán Puebla
    • 1
  • María García de la Banda
    • 2
  • Kim Marriott
    • 2
  • Peter J. Stuckey
    • 3
  1. 1.Technical University of Madrid (UPM)Spain
  2. 2.Monash UniversityAustralia
  3. 3.University of MelbourneAustralia

Personalised recommendations