Local Data Specifications

Local data specifications in a COMPILE or BIND statement are applied either to the compilation or the resulting object code file, according to the following rules:

  • A local data specification that is to be applied to the compilation must be preceded by the word COMPILER or a compiler name.

  • All the local data specifications to be applied to the compilation must precede all the local data specifications to be applied to the execution of the object code file.

Example

Local data specifications can be applied to the compilation to replace input files used by the compiler. In the following example, a local data specification takes the place of the CARD file:

COMPILE OBJECT/RUNNER WITH ALGOL LIBRARY GO;
  COMPILER FILE TAPE (TITLE = RUNNER/B);
COMPILER DATA CARD
? % End data CARD

Local data specifications can be applied to the execution of the object code file to replace input files that would normally be read by the program at run time.

Local data specifications that follow a COMPILE or BIND statement are reread if the COMPILE or BIND statement is executed more than once.

Run-Time Overriding of Compiler Task Equation

The following example shows how task equations set for a program at compile time can be overridden at run time:

COMPILE OBJECT/X WITH ALGOL LIBRARY;
  COMPILER FILE CARD (TITLE=X,KIND=DISK);
  ALGOL PRIORITY=50; % Sets priority of ALGOL compilation.
  PRIORITY=60; % Sets priority in object code file X.
RUN OBJECT/X; % Runs at priority 60.
RUN OBJECT/X;
  PRIORITY=70; % Overrides compiled-in priority
               % and runs at priority 70.

Another example of interaction between compile-time and run-time task equations appears under “OPTION Assignment” in Section 5.

COMPILE and BIND Statements

The following example illustrates several COMPILE and BIND statements:

COMPILE X/Y WITH COBOL85 LIBRARY GO;
  COBOL85 FILE CARD(TITLE = C/D, KIND = DISK);
  COBOL85 PRIORITY = 55;
  FILE F(TITLE=Y/Z);
COMPILE A WITH C SYNTAX;
COMPILE X ALGOL;
COMPILE B WITH COBOL85 ON PACK GO;
BIND X/Y WITH BINDER LIBRARY GO;
COMPILE A/B WITH COBOL85 LIBRARY;
  COMPILER PUNCHLIMIT = 100;
  COMPILER PRINTLIMIT = 130;
COMPILER DATA CARD
.
.
.
? % End of CARD data