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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Biagioni, E., Harper, R., Lee, P.: A network protocol stack in Standard ML. Higher Order and Symbolic Computation 14(4) (2001)
Deline, R., Fähndrich, M.: VAULT: a programming language for reliable systems (2001), http://research.microsoft.com/vault
Derby, H.: The performance of FoxNet 2.0. Technical Report CMU-CS-99-137 School of Computer Science, Carnegie Mellon University (June 1999)
ECMA International Standard ECMA-334 C# Language Specification, http://www.ecma-international.org/publications/standards/Ecma-334.htm
Foster, J.S., Johnson, R., Kodumal, J., Aiken, A.: Flow-Insensitive Type Qualifiers. Trans. on Programming Languages and Systems. 28(6), 1035–1087 (2006)
Grossman, D.: Quantified Types in an Imperative Language. ACM Transactions on Programming Languages and Systems (2006)
Hughes, J.: Global variables in Haskell. Journal of Functional Programming archive 14(5) (September 2004)
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)
International Std. Organization ISO/IEC 9899:1999 (Prog. Languages - C) (1999)
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)
Jones, M.P.: Qualified types: theory and practice.Cambridge Distinguished Dissertation in Computer Science (1995) ISBN:0-521-47253-9
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)
Peyton Jones, S.L., Wadler, P.: Imperative functional programming. In: Proc. ACM SIGPLAN Principles of Programming Languages (1993)
Peyton Jones, S.L. (ed.): Haskell 98 Language and Libraries: The Revised report. Cambridge University Press, Cambridge (2003)
Milner, R.: A theory of type polymorphism in programming. Journal of Computer and System Sciences, 348–375 (1978)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML - Revised. The MIT Press, Cambridge (1997)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java Language Specification, 3rd edn., http://java.sun.com/docs/books/jls
van Rossum, G.: Python Reference Manual. In: Drake Jr., F.L, ed. (2006), http://docs.python.org/ref/ref.html
Shapiro, J.S., Smith, J.M., Farber, D.J.: EROS: a fast capability system. In: ACM Symposium on Operating Systems Principles (December 1999)
Shapiro, J.S., Sridhar, S., Doerrie, M.S.: BitC Language Specification, http://www.bitc-lang.org/docs/bitc/spec.html
Smith, G., Volpano, D.: A sound polymorphic type system for a dialect of C. Science of Computer Programming 32(2–3), 49–72 (1998)
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)
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)
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)
Tschantz, M.S., Ernst, M.D.: Javari: Adding reference immutability to Java. Object-Oriented Programming Systems, Languages, and Applications (October 2005)
Wright, A.: Simple Imperative Polymorphism. Lisp and Symbolic Comp. 8(4), 343–355 (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)