By downloading this code you agree to the
Source Code Use License (PDF). |
{ 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}