Der Natural Optimizer Compiler ist besonders wirkungsvoll bei Programmen, die eine beträchtliche Menge an Datenmanipulationen enthalten, wie z. B. Berechnung, Transfer und Verarbeitung logischer Bedingungen.
Dieser Abschnitt gibt eine Übersicht über die Statements, die in Maschinencode kompiliert werden, und über die Statements, die nicht kompiliert werden.
Anmerkung:
Die Optionen, die der Natural Optimizer Compiler zur Verfügung
stellt, können nicht verwendet werden, um Statements festzulegen, die optimiert
werden sollen, wie in den Optimizer-Optionen
beschrieben.
Der Natural Optimizer Compiler kompiliert die folgenden Statements in Maschinencode:
EXAMINE
, mit folgenden
Klauseln:
DIRECTION
(nur mit
konstanten Werten, d.h. FORWARD
oder BACKWARD
),
GIVING
NUMBER
,
GIVING
POSITION
(auch gleichzeitig),
Beispiel:
EXAMINE #TEXT FOR #A GIVING NUMBER #NMB1 EXAMINE #TEXT FOR #A GIVING POSITION #POSEX5 EXAMINE #TEXT FOR #A GIVING LENGTH #LGHEX6
Einschränkungen:
GIVING INDEX
wird nicht optimiert.
operand1
und
operand4
können feste
Array-Ausprägungen sein, d.h. es sind keine Bereiche zulässig, zum
Beispiel:
EXAMINE #A(#J) FOR #B(#K)
Der Natural Optimizer Compiler kompiliert nicht die folgenden Statements:
Ein-/Ausgabe-Statements (DISPLAY
,
WRITE
, READ
/WRITE WORK FILE
).
Komplexe spezielle Statements, zum Beispiel
SEPARATE
.
Statements, die die Steuerung an ein anderes Objekt übergeben,
zum Beispiel FETCH
, PERFORM
, CALLNAT
,
CALL
.
Statements, die einen Datenbankzugriff ausführen
(READ
, FIND
, HISTOGRAM
,
GET
, UPDATE
, DELETE
, END
TRANSACTION
, BACKOUT TRANSACTION
)