An experiment in domain refinement: Type domains and type representations for logic programs
We apply the methodology of domain refinement to systematically derive domains for type analysis. Domains are built by iterative application of the Heyting completion operator to a given set of basic types. We give a condition on the type system which assures that two steps of iteration are sufficient to reach the fixpoint. Moreover, we provide a general representation for type domains through transfinite formulas. Finally, we show a subset of finite formulas which can be used as a computationally feasible implementation of the domains and we define the corresponding abstract operators.
KeywordsAbstract interpretation abstract domain static analysis type analysis logic programming
Unable to display preview. Download preview PDF.
- 2.T. Armstrong, K. Marriott, P. Schachte, and H. Søndergaard. Boolean functions for dependency analysis: Algebraic properties and efficient representation. In B. Le Charlier, editor, Proc. Static Analysis Symposium, SAS'94, volume 864 of Lecture Notes in Computer Science, pages 266–280. Springer-Verlag, 1994.Google Scholar
- 4.J. Boye. Directional Types in Logic Programming. PhD thesis, Linköping University (Sweden), 1996.Google Scholar
- 5.M. Codish and B. Demoen. Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop. In Proc. of the first International Symposium on Static Analysis, volume 864 of Lecture Notes in Computer Science, pages 281–296. Springer-Verlag, 1994.Google Scholar
- 6.M. Codish and V. Lagoon. Type dependencies for logic programs using ACI—unification. In Proceedings of the 1996 Israeli Symposium on Theory of Computing and Systems, pages 136–145. IEEE Press, June 1996. Extended version to appear in Theoretical Computer Science.Google Scholar
- 10.T. Frühwirth, E. Shapiro, M.Y. Vardi, and E. Yardeni. Logic Programs as Types for Logic Programs. In Albert R. Meyer, editor, Proceedings of the 6th Annual IEEE Symposium on Logic in Computer Science, pages 300–309, Amsterdam, The Netherlands, July 1991. IEEE Computer Society Press.Google Scholar
- 11.J. Gallagher and D. A. de Waal. Fast and Precise Regular Approximation of Logic Programs. In Pascal Van Hentenryck, editor, Proceedings of the Eleventh International Conference on Logic Programming, pages 599–613, Santa Margherita Ligure, Italy, 1994. The MIT Press.Google Scholar
- 12.R. Giacobazzi and F. Scozzari. Intuitionistic implication in abstract interpretation. In H. Glaser, P. Hartel, and H. Kuchen, editors, Proceedings of Ninth International Symposium on Programming Languages, Implementations, Logics and Programs PLILP'97, volume 1292 of Lecture Notes in Computer Science, pages 175–189. Springer-Verlag, 1997.Google Scholar
- 14.T. Kanomori and K. Horiuchi. Polymorphic Type Inference in Prolog by Abstract Interpretation. In Logic Programming 87-Tokyo, volume 315 of Lecture Notes in Computer Science, pages 195–214. Springer-Verlag, 1988.Google Scholar
- 15.M. Kifer and J. Wu. A first-order theory of types and polymorphism in logic programming. In IEEE Symposium on logic in Computer Science, 1991.Google Scholar
- 16.C. Pyo and U. S. Reddy. Inference of Polymorphic Types for Logic Programming. In E. Lusk and R. Overbeek, editors, Proc. North American Conf. on Logic Programming'89, pages 1115–1132. The MIT Press, 1989.Google Scholar
- 17.F. Scozzari. Logical optimality of groundness analysis. In P. Van Hentenryck, editor, Proceedings of International Static Analysis Symposium, SAS'97, volume 1302 of Lecture Notes in Computer Science, pages 83–97. Springer-Verlag, 1997.Google Scholar
- 18.J. Xu and D. S. Warren. A Type Inference System for Prolog. In R. A. Kowalski and K. A. Bowen, editors, Proc. Fifth Int'l Conf. on Logic Programming, pages 604–619. The MIT Press, 1988.Google Scholar