Abstract
This paper presents a general approach to the Abstract Interpretation of Prolog programs with cut. In most of previous approaches the cut primitive is merely ignored.
Our method consists in trasforming an interpreter for Prolog into an interpreter that computes on abstract values and that performs loop-checks by storing all encountered call patterns into a table. In order to guarantee correctness, this tabled interpreter needs information about the sure success of the corresponding concrete computations. Such information, called control information, is used to control the execution of the cuts by the tabled interpreter: a cut is executed only if the control information guarantees that it is also executed at the concrete level, otherwise, the cut is ignored. Control information can be easily added to any abstract domain.
Preview
Unable to display preview. Download preview PDF.
References
K. Apt: Introduction to Logic Programming. Handbook of Theoretical Computer Science, J.van Leeuwen, editor, North Holland, 1990.
R. Barbuti, M. Codish, R. Giacobazzi, and G. Levi: Modelling Prolog Control. In: Proc. Nineteenth Annual ACM Symposium on Principles of Programming Languages, pp 95–104. ACM Press, 1992.
P. Codognet and G. Filé: Computations, abstractions and constraints in logic programs. In: Proc. Fourth International Conference on Programming Languages (ICCL'92), Oakland, U.S.A., April 1992.
P. Cousot and R. Cousot: Abstract Interpretation and Application to Logic Programs. Journal of Logic Programming, 13(2&3):103–179, July, 1992.
M. Bruynooghe, M. Codish, D. Dams and G. Filé: Freeness analysis for logic programs, 1992. To appear in ICLP'93.
A. Cortesi and G. Filé: Abstract Interpretation of Logic Programs: an abstract domain for groundness, equivalence, sharing and freeness analysis. In: N.D. Jones and P. Hudak (eds): ACM Symposium on partial evaluation and semantics based program manipulation. SIGPLAN NOTICES, 26(9), pp. 52–61. 1991.
A. Cortesi, G. Filé, and S. Rossi: Abstract Interpretation of Prolog: the treatment of the buit-ins. In: Costantini (ed): Proc. GULP'92, 1992.
A. Cortesi, G. Filé, and W. Winsborough: Prop revisited: Propositional Formulas as Abstract Domain for Groundness Analysis. In: G. Kahn (ed): Proceedings of the IEEE sixth annual symposium on Logic In Computer Science (LICS'91), pp. 322–327, Amsterdam, 1991. IEEE Press.
S.K. Debray and P. Mishra: Denotational and Operational Semantics for Prolog. In: M. Wirsing (ed): Formal Description of Programming Concepts III, pp. 245–269. North-Holland, Amsterdam, 1987. 1987.
T. Kanamori and T. Kawamura: Abstract Interpretation based on OLDT-resolution. ICOT Research Report, Tokyo, July, 1990.
B. Le Charlier and S. Rossi: An Accurate Abstract Interpretation Framework for Prolog with cut. Submitted to ILPS'93.
J.W. Lloyd: Foundations of Logic Programming. Springer, 1987.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Filé, G., Rossi, S. (1993). Static analysis of Prolog with cut. In: Voronkov, A. (eds) Logic Programming and Automated Reasoning. LPAR 1993. Lecture Notes in Computer Science, vol 698. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56944-8_48
Download citation
DOI: https://doi.org/10.1007/3-540-56944-8_48
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-56944-2
Online ISBN: 978-3-540-47830-0
eBook Packages: Springer Book Archive