The text read off it
[page 58]
The "parameters" are the names of data which, at object time, will be replaced by the data specified in the USING phrase of the DO command. The "functions" are names representing results produced by the procedure; these results become the values of the result-names specified in the GIVING phrase of the DO command. An example of the USING . . . GIVING phrases is included in the discussion of the DO command on page 52.
Another point mentioned elsewhere should be noted in this context: The names of functions, i.e., the names of results produced by a section of procedure, may be used directly in an arithmetic expression instead of writing a DO command. In this case, each function-name is followed by its parameters enclosed in double parentheses. (See the discussion of functions in Chapter 2 and in this chapter on page 46.)
The INCLUDE Command
The INCLUDE command causes the processor to extract a unit of procedure from the library and to insert it in the present program. The basic forms of the command are:
INCLUDE library.procedure
INCLUDE HERE library.procedure
The "library.procedure" named in the command may be either a sentence or a section of procedure filed in the library under that name. The first form of INCLUDE causes the procedure to be placed at the end of the present program. With INCLUDE HERE, the procedure is inserted wherever the command appears. The first form is normally used to copy closed subroutines (i.e., procedures that are addressed by DO commands) since such procedures must be set off from the main flow of the program. Procedures to be used "in line" are inserted by means of the second form.
Name substitution is an optional feature of the INCLUDE command which enables the programmer to rename the procedure itself and/or certain names within the procedure. The substitution is done by the processor at the time the procedure is included. To specify a new name for the procedure, an additional phrase is appended to the basic forms of the command:
. . . AS procedure.name
If this phrase is used, all occurrences of the library procedure-name are replaced by the "procedure.name" indicated. Otherwise, of course, the procedure is referenced by means of its name in the library.
Similarly, if names within the library procedure are to be replaced by new names, another phrase is appended to the command:
. . . WITH new.name.1 FOR old.name.1, new.name.2 FOR
old.name.2, ... new.name.n FOR old.name.n
Again, all occurrences of the "old.names" are replaced by the specified "new.names."
