Abstract
Abstract interpretation-based data-flow analysis of logic programs is, at this point, relatively well understood from the point of view of general frameworks and abstract domains. On the other hand, comparatively little attention has been given to the problems which arise when analysis of a full, practical dialect of the Prolog language is attempted, and only few solutions to these problems have been proposed to date. Existing proposals generally restrict in one way or another the classes of programs which can be analyzed. This paper attempts to fill this gap by considering a full dialect of Prolog, essentially the recent ISO standard, pointing out the problems that may arise in the analysis of such a dialect, and proposing a combination of known and novel solutions that together allow the correct analysis of arbitrary programs which use the full power of the language.
Chapter PDF
Similar content being viewed by others
References
M. Bruynooghe. A Practical Framework for the Abstract Interpretation of Logic Programs. Journal of Logic Programming, 10:91–124, 1991.
F. Bueno, D. Cabeza, M. Hermenegildo, and G. Puebla. Data-Flow Analysis of Prolog Programs with Extra-Logical Features. Technical Report CLIP2/95.0, Computer Science Dept., Technical U. of Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain, March 1995.
F. Bueno, M. García de la Banda, D. Cabeza, and M. Hermenegildo. The &-Prolog Compiler System — Automatic Parallelization Tools for LP. Technical Report CLIP5/93.0, Computer Science Dept., Technical U. of Madrid (UPM), Facultad Informatica UPM, 28660-Boadilla del Monte, Madrid-Spain, June 1993.
F. Bueno, M. García de la Banda, and M. Hermenegildo. Effectiveness of Global Analysis in Strict Independence-Based Automatic Program Parallelization. In International Symposium on Logic Programming, pages 320–336. MIT Press, November 1994.
M. Bugliesi, E. Lamma, and P. Mello. Modularity in Logic Programming. Journal of Logic Programming, 19–20:443–502, July 1994.
B. Le Charlier and P. Van Hentenryck. Experimental Evaluation of a Generic Abstract Interpretation Algorithm for Prolog. ACM Transactions on Programming Languages and Systems, 16(1):35–101, 1994.
B. Le Charlier, S. Rossi, and P. Van Hentenryck. An Abstract Interpretation Framework Which Accurately Handles Prolog Search-Rule and the Cut. In International Symposium on Logic Programming, pages 157–171. MIT Press, November 1994.
M. Codish, M. García de la Banda, M. Bruynooghe, and M. Hermenegildo. Goal Dependent vs Goal Independent Analysis of Logic Programs. In F. Pfenning, editor, Fifth International Conference on Logic Programming and Automated Reasoning, number 822 in LNAI, pages 305–320, Kiev, Ukraine, July 1994. Springer-Verlag.
M. Codish, S. 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, ACM, 1993.
A. Cortesi and G. File. Abstract interpretation of prolog: the treatment of the built-ins. In Proc. of the 1992 GULP Conference on Logic Programming, pages 87–104. Italian Association for Logic Programming, June 1992.
P. Cousot and R. Cousot. Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In ACM Symposium on Principles of Programming Languages, pages 238–252, 1977.
S. Debray, editor. Journal of Logic Programming, Special Issue: Abstract Interpretation, volume 13(1–2). North-Holland, July 1992.
S. Debray. Static Inference of Modes and Data Dependencies in Logic Programs. ACM Transactions on Programming Languages and Systems, 11(3):418–450, 1989.
S.K. Debray. Flow analysis of dynamic logic programs. Journal of Logic Programming, 7(2):149–176, September 1989.
M. Gabbrielli, R. Giacobazzi, and G. Levi. Goal independency and call patterns in the analysis of logic programs. In ACM Symposium on Applied Computing. ACM, 1994.
Roberto Giacobazzi, Saumya Debray, and Giorgio Levi. A generalized semantics for constraint logic programs. In Proceedings of the International Conference on Fifth Generation Computer Systems, pages 581–591, ICOT, Japan, 1992. Association for Computing Machinery.
M. Hermenegildo, K. Marriott, G. Puebla, and P. Stuckey. Incremental Analysis of Logic Programs. In International Conference on Logic Programming. MIT Press, 1995.
M. Hermenegildo, R. Warren, and S. Debray. Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming, 13(4):349–367, August 1992.
International Organization for Standardization, National Physical Laboratory, Middlesex, England. PROLOG. ISO/IEC DIS 13211 — Part 1: General Core, 1994.
International Organization for Standardization, National Physical Laboratory, Middlesex, England. PROLOG. Working Draft 7.0 X3J17/95/1 — Part 2: Modules, 1995.
D. Jacobs and A. Langen. Compilation of Logic Programs for Restricted And-Parallelism. In European Symposium on Programming, pages 284–297, 1988.
K. Marriott, H. Søndergaard, and N.D. Jones. Denotational Abstract Interpretation of Logic Programs. ACM Transactions on Programming Languages and Systems, 16(3):607–648, 1994.
K. Muthukumar and M. Hermenegildo. Compile-time Derivation of Variable Dependency Using Abstract Interpretation. Journal of Logic Programming, 13(2 and 3):315–347, July 1992.
University of Bristol, Katholieke Universiteit Leuven, and Universidad Politécnica de Madrid. Interface between the prince prolog analysers and the compiler. Technical Report KUL/PRINCE/92.1, Katholieke Universiteit Leuven, October 1992.
G. Puebla and M. Hermenegildo. Implementation of Multiple Specialization in Logic Programs. In Proc. ACM SIGPLAN Symposium on Partial Evaluation and Semantics Based Program Manipulation. ACM, June 1995.
P. Van Roy and A.M. Despain. High-Performace Logic Programming with the Aquarius Prolog Compiler. IEEE Computer Magazine, pages 54–68, January 1992.
V. Santos-Costa, D.H.D. Warren, and R. Yang. The Andorra-I Preprocessor: Supporting Full Prolog on the Basic Andorra Model. In 1991 International Conference on Logic Programming, pages 443–456. MIT Press, June 1991.
R. Warren, M. Hermenegildo, and S. Debray. On the Practicality of Global Flow Analysis of Logic Programs. In Fifth International Conference and Symposium on Logic Programming, pages 684–699, Seattle, Washington, August 1988. MIT Press.
W. Winsborough. Multiple Specialization using Minimal-Function Graph Semantics. Journal of Logic Programming, 13(2 and 3):259–290, July 1992.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bueno, F., Cabeza, D., Hermenegildo, M., Puebla, G. (1996). Global analysis of standard Prolog programs. In: Nielson, H.R. (eds) Programming Languages and Systems — ESOP '96. ESOP 1996. Lecture Notes in Computer Science, vol 1058. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61055-3_32
Download citation
DOI: https://doi.org/10.1007/3-540-61055-3_32
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61055-7
Online ISBN: 978-3-540-49942-8
eBook Packages: Springer Book Archive