[net.lang.mod2] Separate Compilation and Module

notes@iuvax.UUCP (03/28/84)

#N:iuvax:8600008:000:916
iuvax!cjl    Mar 27 15:01:00 1984


SEPARATE COMPILATION and MODULE :

 Module is a tool for logical program abstraction. Mutually dependent
modules are not good program design. Separate compilation is a different
issue which is not explicitly supported in Modula-2. It is hidden under
the definition modules and implementation modules. The non-recursive
restriction on modules precludes the separate compilation of mutually
recursive procedures.

  So a rationale for relaxing the non-recursive modules would be
for separate compilation of mutually recursive procedures only.
In Modula-2, this means cycles should be allowed among the definition
modules and implementation modules if there is no initialization block
in the implementation module. In addition, program should be well 
documented to reflect the use of implementation module for the purpose 
of separate compilation, not a logical modularization.

C.J.Lo, IUPUI
cjl@Indiana@CSNet-Relay