Various methodologies have been used to control the high?and rising?cost of developing software products. Among these, one technique that has proved effective entails constructing programs from small, well-defined modules. This technique, called modular programming, can be used in any programming language; however, without language support to enforce module boundaries, errors often occur.