Skip to main content

Properties of a Type Abstract Interpreter

  • Conference paper
  • First Online:

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

Abstract

In a previous paper [7], we have developed a type abstract interpreter which was shown to be more precise then the classical ML type inference algorithm in inferring monomorphic types, represented as Herbrand terms with variables à la Hindley. In order to deal with recursive functions, we introduce a new abstract fixpoint operator which generalizes the one used in the Hindley and ML inference algorithms by performing k fixpoint computation steps (as done in [11] in the case of polymorphic types). Our abstract interpreter has many interesting properties. It is possible to reconstruct the ML result by just one fixpoint computation step (k = 1) and to show that for every k ≥ 1, either we reach the least fixpoint (which is in general more precise than the ML result), or we get exactly the same result as ML. One important result is that our type interpreter turns out to correspond to a type system, which lies between monomorphism and polymorphic recursion.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Cousineau and M. Mauny. The Functional Approach to Programming. Cambridge University Press, 1998.

    Google Scholar 

  2. P. Cousot. Types as abstract interpretations. In Conference Record of the 24th ACM Symp. on Principles of Programming Languages, pages 316–331. ACM Press, 1997.

    Google Scholar 

  3. P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Proceedings of Fourth ACM Symp. Principles of Programming Languages, pages 238–252, 1977.

    Google Scholar 

  4. P. Cousot and R. Cousot. Systematic Design of Program Analysis Frameworks. In Proceedings of Sixth ACM Symp. Principles of Programming Languages, pages 269–282, 1979.

    Google Scholar 

  5. P. Cousot and R. Cousot. Comparing the Galois Connection and Widening/ Narrowing Approaches to Abstract Interpretation. In M. Bruynooghe and M. Wirsing, editors, Proceedings of PLILP’92, volume 631 of Lecture Notes in Computer Science, pages 269–295. Springer-Verlag, 1992.

    Google Scholar 

  6. L. Damas and R. Milner. Principal type-schemes for functional programs. In Proceedings of the Ninth Annual ACM Symposium on Principles of Programming Languages, pages 207–212. ACM Press, 1982.

    Google Scholar 

  7. R. Gori and G. Levi. An experiment in type inference and verification by abstract interpretation. In A. Cortesi, editor, Proc. of the VMCAI’02 workshop on Abstract Interpretaion and Model Checking, volume 2294 of LNCS, pages 225–239, 2002.

    Chapter  Google Scholar 

  8. J. R. Hindley. The principal type-scheme of an object in combinatory logic. Transactions American Mathematical Society, 146:29–60, 1969.

    Article  MATH  MathSciNet  Google Scholar 

  9. J. Mitchell. Type systems for programming languages. volume B of Handbook of Theoretical Computer Science, pages 365–458. Elsevier, 1990.

    Google Scholar 

  10. B. Monsuez. Polymorphic typing by abstract interpretation. In R. Shyamasundar, editor, Proceedings of Foundation of Software Technology and Theoretical Computer Science, volume 652 of Lecture Notes in Computer Science, pages 217–228. Springer-Verlag, 1992.

    Google Scholar 

  11. B. Monsuez. Polymorphic types and widening operators. In P. Cousot, M. Falaschi, G. Filè, and A. Rauzy, editors, Proceedings of Static Analysis, volume 724 of Lecture Notes in Computer Science, pages 224–281. Springer-Verlag, 1993.

    Google Scholar 

  12. A. Mycroft. Polymorphic type schemes and recursive definitions. In G. Goos and J. Hartmanis, editors, Proceedings of the International Symposium on Programming, volume 167 of Lecture Notes in Computer Science, pages 217–228. Springer-Verlag, 1984.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gori, R., Levi, G. (2003). Properties of a Type Abstract Interpreter. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2003. Lecture Notes in Computer Science, vol 2575. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36384-X_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-36384-X_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00348-9

  • Online ISBN: 978-3-540-36384-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics