Coping with type casts in c

29Citations
Citations of this article
8Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The use of type casts is pervasive in C. Although casts pro- vide great flexibility in writing programs, their use obscures the meaning of programs, and can present obstacles during maintenance. Casts involving pointers to structures (C structs) are particularly problematic, because by using them, a programmer can interpret any memory region to be of any desired type, thereby compromising C's already weak type system. This paper presents an approach for making sense of such casts, in terms of understanding their purpose and identifying fragile code. We base our approach on the observation that casts are often used to simulate object- oriented language features not supported directly in C. We first describe a variety of ways - idioms - in which this is done in C programs. We then develop a notion of physical subtyping, which provides a model that explains these idioms. We have created tools that automatically analyze casts appearing in C programs. Experimental evidence collected by using these tools on a large amount of C code (over a million lines) shows that, of the casts involving struct types, most (over 90%) can be associated meaningfully { and automatically { with physical subtyping. Our results indicate that the idea of physical subtyping is useful in coping with casts and can lead to valuable software productivity tools. © Springer-Verlag Berlin Heidelberg 1999.

Cite

CITATION STYLE

APA

Siff, M., Chandra, S., Ball, T., Kunchithapadam, K., & Reps, T. (1999). Coping with type casts in c. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1687 LNCS, pp. 180–198). Springer Verlag. https://doi.org/10.1007/3-540-48166-4_12

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free