Towards an ML-style Polymorphic Type System for C (1996) [11 citations — 3 self]
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 |

