Skip to main content

An experiment in domain refinement: Type domains and type representations for logic programs

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1490))

Abstract

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.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. K. R. Apt and E. Marchiori. Reasoning about Prolog programs: from modes through types to assertions. Formal Aspects of Computing, 6(6A):743–765, 1994.

    Article  MATH  Google Scholar 

  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 

  3. R. Barbuti and R. Giacobazzi. A Bottom-up Polymorphic Type Inference in Logic Programming. Science of Computer Programming, 19(3):281–313, 1992.

    Article  MATH  MathSciNet  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 

  7. A. Cortesi, G. Filè, and W. Winsborough. Optimal Groundness Analysis Using Propositional Logic. Journal of Logic Programming, 27(2):137–167, 1996.

    Article  MATH  MathSciNet  Google Scholar 

  8. P. Cousot and R. Cousot. Abstract Interpretation and Applications to Logic Programs. Journal of Logic Programming, 13(2 & 3):103–179, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  9. G. Filé, R. Giacobazzi, and F. Ranzato. A unifying view on abstract domain design. ACM Computing Surveys, 28(2):333–336, 1996.

    Article  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 

  13. G. Janssens and M. Bruynooghe. Deriving descriptions of possible values of program variables by means of abstract interpretation. Journal of Logic Programming, 13(2 & 3):205–258, 1992.

    Article  MATH  MathSciNet  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 

  19. E. Yardeni and E. Shapiro. A Type System for Logic Programs. Journal of Logic Programming, 10:125–135, 1991.

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Catuscia Palamidessi Hugh Glaser Karl Meinke

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Levi, G., Spoto, F. (1998). An experiment in domain refinement: Type domains and type representations for logic programs. In: Palamidessi, C., Glaser, H., Meinke, K. (eds) Principles of Declarative Programming. ALP PLILP 1998 1998. Lecture Notes in Computer Science, vol 1490. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0056613

Download citation

  • DOI: https://doi.org/10.1007/BFb0056613

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-49766-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics