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, access via your institution.
Tax calculation will be finalised at checkout
Purchases are for personal use onlyLearn about institutional subscriptions
Unable to display preview. Download preview PDF.
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.
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.
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.
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.
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.
S. I. Feldman. Make-a program for maintaining computer programs. Software-Practice and Experience, 1979.
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.
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.
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.
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.
G. Puebla and M. Hermenegildo. Some issues in analysis and specialization of modular Ciao-Prolog programs. In .
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.
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.
R. W. Schwanke and G. E. Kaiser. Smarter recompilation. ACM Transactions on Programming Languages and Systems, 10(4):627–632, 1988.
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.
W. Tichy. Smart recompilation. ACM Transactions on Programming Languages and Systems, 8(3):273–291, 1986.
W. Vanhoof and Bruynooghe. Towards modular binding-time analysis for firstorder Mercury. In .
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.
W. Winsborough. Multiple specialization using minimal-function graph semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.
Special Issue on Optimization and Implementation of Declarative Programming Languages, volume 30 of Electronic Notes in Theoretical Computer Science. Elsevier-North Holland, March 2000.
© 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
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42127-6
Online ISBN: 978-3-540-45142-6
eBook Packages: Springer Book Archive