As already mentioned in Modularization, application code should be separated into distinct source modules. These source modules are then compiled to produce individual object modules, which in turn are link-edited to produce executable code. However, the executable application code may itself consist of more than one executable module, by virtue of the dynamic linking capabilities of the OS/2 operating system.