Skip to main content

A Model for Inter-module Analysis and Optimizing Compilation

  • Conference paper
  • First Online:
Logic Based Program Synthesis and Transformation (LOPSTR 2000)

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.

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. 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. 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. 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. 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. 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. S. I. Feldman. Make-a program for maintaining computer programs. Software-Practice and Experience, 1979.

    Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Article  Google Scholar 

  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.

    Article  MATH  Google Scholar 

  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.

    MATH  MathSciNet  Google Scholar 

  11. G. Puebla and M. Hermenegildo. Some issues in analysis and specialization of modular Ciao-Prolog programs. In [20].

    Google Scholar 

  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. 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. R. W. Schwanke and G. E. Kaiser. Smarter recompilation. ACM Transactions on Programming Languages and Systems, 10(4):627–632, 1988.

    Article  Google Scholar 

  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.

    Article  MATH  Google Scholar 

  16. W. Tichy. Smart recompilation. ACM Transactions on Programming Languages and Systems, 8(3):273–291, 1986.

    Article  Google Scholar 

  17. W. Vanhoof and Bruynooghe. Towards modular binding-time analysis for firstorder Mercury. In [20].

    Google Scholar 

  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. W. Winsborough. Multiple specialization using minimal-function graph semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.

    Article  MATH  MathSciNet  Google Scholar 

  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 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bueno, F., Hermenegildo, M., Puebla, G., de la Banda, M.G., Marriott, K., Stuckey, P.J. (2001). A Model for Inter-module Analysis and Optimizing Compilation. In: Logic Based Program Synthesis and Transformation. LOPSTR 2000. Lecture Notes in Computer Science, vol 2042. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45142-0_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-45142-0_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42127-6

  • Online ISBN: 978-3-540-45142-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics