TLDI 2007 START Conference Manager    

Modular Information Hiding and Type-Safe Linking for C

Saurabh Srivastava, Michael Hicks and Jeffrey Foster

The ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI 2007)
Nice, France, January 16, 2007


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.

START Conference Manager (V2.53.7)