Skip to main content

Sound and Complete Type Inference for a Systems Programming Language

  • Conference paper
Programming Languages and Systems (APLAS 2008)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5356))

Included in the following conference series:

Abstract

This paper introduces a new type system designed for safe systems programming. The type system features a new mutability model that combines unboxed types with a consistent typing of mutability. The type system is provably sound, supports polymorphism, and eliminates the need for alias analysis to determine the immutability of a location. A sound and complete type inference algorithm for this system is presented.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Biagioni, E., Harper, R., Lee, P.: A network protocol stack in Standard ML. Higher Order and Symbolic Computation 14(4) (2001)

    Google Scholar 

  2. Deline, R., Fähndrich, M.: VAULT: a programming language for reliable systems (2001), http://research.microsoft.com/vault

  3. Derby, H.: The performance of FoxNet 2.0. Technical Report CMU-CS-99-137 School of Computer Science, Carnegie Mellon University (June 1999)

    Google Scholar 

  4. ECMA International Standard ECMA-334 C# Language Specification, http://www.ecma-international.org/publications/standards/Ecma-334.htm

  5. Foster, J.S., Johnson, R., Kodumal, J., Aiken, A.: Flow-Insensitive Type Qualifiers. Trans. on Programming Languages and Systems. 28(6), 1035–1087 (2006)

    Article  Google Scholar 

  6. Grossman, D.: Quantified Types in an Imperative Language. ACM Transactions on Programming Languages and Systems (2006)

    Google Scholar 

  7. Hughes, J.: Global variables in Haskell. Journal of Functional Programming archive 14(5) (September 2004)

    Google Scholar 

  8. Diatchki, I.S., Jones, M.P., Leslie, R.: High- level Views on Low-level Representations. In: Proc. ACM Int. Conference on Functional Programming, pp. 168–179 (2005)

    Google Scholar 

  9. International Std. Organization ISO/IEC 9899:1999 (Prog. Languages - C) (1999)

    Google Scholar 

  10. Jim, T., Morrisett, G., Grossman, D., Hicks, M., Cheney, J., Wang, Y.: Cyclone: A safe dialect of C. In: Proc. of USENIX Annual Technical Conference, pp. 275–288 (2002)

    Google Scholar 

  11. Jones, M.P.: Qualified types: theory and practice.Cambridge Distinguished Dissertation in Computer Science (1995) ISBN:0-521-47253-9

    Google Scholar 

  12. Peyton Jones, S.L., Launchbury, J.: Unboxed values as first class citizens in a non-strict functional language. Functional Programming Languages and Computer Architecture (1991)

    Google Scholar 

  13. Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: Proc. ACM SIGPLAN Principles of Programming Languages (1993)

    Google Scholar 

  14. Peyton Jones, S.L. (ed.): Haskell 98 Language and Libraries: The Revised report. Cambridge University Press, Cambridge (2003)

    MATH  Google Scholar 

  15. Milner, R.: A theory of type polymorphism in programming. Journal of Computer and System Sciences, 348–375 (1978)

    Google Scholar 

  16. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML - Revised. The MIT Press, Cambridge (1997)

    Google Scholar 

  17. Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn., http://java.sun.com/docs/books/jls

  18. van Rossum, G.: Python Reference Manual. In: Drake Jr., F.L, ed. (2006), http://docs.python.org/ref/ref.html

  19. Shapiro, J.S., Smith, J.M., Farber, D.J.: EROS: a fast capability system. In: ACM Symposium on Operating Systems Principles (December 1999)

    Google Scholar 

  20. Shapiro, J.S., Sridhar, S., Doerrie, M.S.: BitC Language Specification, http://www.bitc-lang.org/docs/bitc/spec.html

  21. Smith, G., Volpano, D.: A sound polymorphic type system for a dialect of C. Science of Computer Programming 32(2–3), 49–72 (1998)

    Article  MATH  Google Scholar 

  22. Sridhar, S., Shapiro, J.S.: Type Inference for Unboxed Types and First Class Mutability. In: Proc. 3rd Workshop on Prog. Languages and Operating Systems (2006)

    Google Scholar 

  23. Sridhar, S., Shapiro, J.S., Smith, S.F.: Sound and Complete Type Inference in BitC. Technical Report SRL-2008-02, Systems Research Laboratory, The Johns Hopkins University (2008)

    Google Scholar 

  24. Tarditi, D., Morrisett, G., Cheng, P., Stone, C., Harper, R., Lee, P.: TIL: A type-directed optimizing compiler for ML. In: Proc. ACM SIGPLAN PLDI (1996)

    Google Scholar 

  25. Tschantz, M.S., Ernst, M.D.: Javari: Adding reference immutability to Java. Object-Oriented Programming Systems, Languages, and Applications (October 2005)

    Google Scholar 

  26. Wright, A.: Simple Imperative Polymorphism. Lisp and Symbolic Comp. 8(4), 343–355 (1995)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Sridhar, S., Shapiro, J.S., Smith, S.F. (2008). Sound and Complete Type Inference for a Systems Programming Language. In: Ramalingam, G. (eds) Programming Languages and Systems. APLAS 2008. Lecture Notes in Computer Science, vol 5356. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89330-1_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89330-1_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89329-5

  • Online ISBN: 978-3-540-89330-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics