Cmod: Modular Information Hiding and Type-Safe Linking for C
Cmod: Modular Information Hiding and Type-Safe Linking for C
Loading...
Files
Publication or External Link
Date
2006-07-31
Authors
Srivastava, Saurabh
Hicks, Michael
Foster, Jeffrey S.
Advisor
Citation
DRUM DOI
Abstract
This paper presents CMod, a novel tool that provides a sound module
system for C. CMod works by enforcing a set of four rules that are based
on principles of modular reasoning and on current programming practice.
CMod's rules flesh out the convention that .h header files are module
interfaces and .c source files are module implementations. Although this
convention is well-known, developing CMod's rules revealed there are
many subtleties in applying the basic pattern correctly. We have proven
formally that CMod's rules enforce both information hiding and type-safe
linking. We evaluated CMod on a number of benchmarks, and found that
most programs obey CMod's rules, or can be made to with minimal effort,
while rule violations reveal brittle coding practices including numerous
information hiding violations and occasional type errors.