MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Towards an ML-style Polymorphic Type System for C (1996) [11 citations — 3 self]

by Geoffrey Smith ,  Dennis Volpano
In 1996 European Symposium on Programming
Add To MetaCart

Abstract:

. Advanced polymorphic type systems have come to play an important role in the world of functional programming. But, curiously, these type systems have so far had little impact upon widely-used imperative programming languages like C and C++. We show that ML-style polymorphism can be integrated smoothly into a dialect of C, which we call Polymorphic C. It has the same pointer operations as C, including the address-of operator &, the dereferencing operator , and pointer arithmetic. Our type system allows these operations in their full generality, so that programmers need not give up the flexibility of C to gain the benefits of ML-style polymorphism. We prove a type soundness theorem that gives a rigorous and useful characterization of well-typed Polymorphic C programs in terms of what can go wrong when they are evaluated. 1 Introduction Much attention has been given to developing sound polymorphic type systems for languages with imperative features. Most notable is the large body of wo...

Citations

1052 The C Programming Language – Kerighan, Ritchie - 1978
242 Compiling polymorphism using intensional type analysis – HARPER, MORRISETT - 1995
234 Semantics of Programming Languages: Structures and Techniques. Foundations of Computing – Gunter - 1992
217 Principal type schemes for functional programs – Milner, Damas - 1982
161 Unboxed objects and polymorphic typing – Leroy - 1992
131 Separate compilation for Standard ML – Appel, MacQueen - 1994
103 Type inference for polymorphic references – Tofte - 1990
82 Simple imperative polymorphism – Wright - 1995
52 A simplified account of polymorphic references – Harper - 1994
50 Polymorphic type inference and assignment – Leroy, Weis - 1991
3 ML of New Jersey, version 0.93 – Standard - 1996
3 A type soundness proof for variables – Volpano, Smith - 1995