Towards an ML-style Polymorphic Type System for C

Loading...
Thumbnail Image
Authors
Smith, Geoffrey
Volpano, Dennis
Subjects
Advisors
Date of Issue
1996-04
Date
April 1996.
Publisher
Language
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.
Type
Description
The article of record as published may be found at http://dx.doi.org/
Series/Report No
Department
Computer Science (CS)
Organization
Identifiers
NPS Report Number
Sponsors
Funder
Format
Citation
Proc. 6th European Symposium on Programming, Linkoping Sweden, pp. 341-355, April 1996.
Distribution Statement
Rights
This publication is a work of the U.S. Government as defined in Title 17, United States Code, Section 101. Copyright protection is not available for this work in the United States.
Collections