Delila Program: module

module program

Documentation for the module program is below, with links to related programs in the "see also" section.

{  version = '6.21 of module.p 2019 Apr 08'; (*}

(* begin module describe.module *)
(*
name
      module: module replacement program

synopsis
      module(fin: in, modlib: in, fout: out,
             modcat: inout, list: out, output: out)

files
      fin: the source program or file
      modlib: a library of modules (if empty, modules of fin are stripped)
      fout: the source program with modules replaced from modlib
      modcat: an alphabetic index to modlib that is recreated
         if it does not match modlib
      list: progress of the transfer.  meaning of the list columns:
         nesting depth:  how deeply the module was nested inside other modules
         action:  what was done with the module.  if a module was not
            transferred, a symbol on the left flags the situation:
              (blank) successful transfer
            * module not found in the source
            v no transfer because version modules can not be transferred
            ? recursive transfers were aborted because the modules may be
              infinitely nested (the depth at which this happens can be
              increased by changing the program - ask your programmer).
              (problem: can you construct this bizarre infinite situation?)
         module name: the name of the module in the source.  in recursive
            cases, these are from the modlib.
      output: messages to the user

description
      The module program allows one to construct libraries of special
      purpose program modules, which one simply 'plugs' into the
      appropriate place in a program.  This speeds up both program design
      and error correction.  Module is more general-purpose than the standard
      'include' type processes because it performs a replacement rather than
      a simple insertion.  The operation is recursive, so a module may be
      composed of other modules.  The replacement mechanism also allows one to
      run the program in 'reverse' so that module-libraries are created by
      extracting modules from existing programs.  This makes the building of
      module libraries easy, and helps keep them updated with new modules and
      improvements to old ones.

         For a full description, see the documentation.

documentation
      moddef, delman.assembly.modules,
      delman.intro.organization 'technical notes'

see also

      Defintion of the module system: moddef

      Delila manual describes use: delman

      Major programs that contain modules (ie, modlib examples):
      delmod.p, prgmod.p, matmod.p

      Example programs: break.p, show.p

      Example of using the module program to insert date/time
      modules into programs:
      https://alum.mit.edu/www/toms/datetime.html

author
      Thomas D. Schneider

bugs
      none known

technical notes

      As usual, many compiler writers are idiots who usurp key words.
      In the case of this program, the SparcWorks writers at Sun
      Microsystems decided to use the word "module" and so this can no
      longer be used in this program.  The solution is to use the
      worcha program to convert these to "amodule".

*)
(* end module describe.module *)
{This manual page was created by makman 1.45}


{created by htmlink 1.62}