The Natural Optimizer Compiler is particularly effective for programs that contain a considerable amount of data manipulation, such as computation, transfer, and logical condition processing.
This section contains an overview of the statements which are compiled to machine code and those which are not compiled.
Note:
The options the Natural Optimizer Compiler provides cannot be used
for specifying statements to be optimized as described in the
Optimizer
Options.
The Natural Optimizer Compiler compiles the following statements to machine code:
EXAMINE
,
with the following clauses:
DIRECTION
(with
constant values only; that is FORWARD
or BACKWARD
),
GIVING
NUMBER
,
GIVING
POSITION
(also concurrently),
Example:
EXAMINE #TEXT FOR #A GIVING NUMBER #NMB1 EXAMINE #TEXT FOR #A GIVING POSITION #POSEX5 EXAMINE #TEXT FOR #A GIVING LENGTH #LGHEX6
Restrictions:
GIVING
INDEX
is not optimized.
operand1
and
operand4
can be fix array occurences;
that is, no ranges are admissible, for example:
EXAMINE #A(#J) FOR #B(#K)
The Natural Optimizer Compiler does not compile the following statements:
I/O statements (DISPLAY
, WRITE
,
READ
/WRITE WORK FILE
).
complex special statements such as SEPARATE
.
statements that pass control to another object such as
FETCH
, PERFORM
, CALLNAT
,
CALL
.
statements that perform database access (READ
,
FIND
, HISTOGRAM
, GET
,
UPDATE
, DELETE
, END TRANSACTION
,
BACKOUT TRANSACTION
)