Cmod: Modular Information Hiding and Type-Safe Linking for C

View/ Open
Date
2006-07-31Author
Srivastava, Saurabh
Hicks, Michael
Foster, Jeffrey S.
Metadata
Show full item recordAbstract
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.