Was kompiliert wird und was nicht

#### Search Results

Search

# Was kompiliert wird und was nicht

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.

- Statements, die vom Natural Optimizer Compiler kompiliert werden

- 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.

## Statements, die vom Natural Optimizer Compiler kompiliert werden

Der Natural Optimizer Compiler kompiliert die folgenden Statements in Maschinencode:

- #### Statements für arithmetische und Datenverschiebungs-Operationen:

  - `ADD`

  - `ASSIGN`

  - `COMPRESS`

  - `COMPUTE`

  - `DIVIDE`

  - `EXAMINE`, mit folgenden Klauseln:

    - `DIRECTION` (nur mit Konstantenwerten, d.h. `FORWARD` oder `BACKWARD`),

    - `GIVING NUMBER`, `GIVING POSITION` (auch gleichzeitig),

    - `GIVING LENGTH`

    - `EXAMINE .. FOR <fld1> REPLACE <fld2>`, wenn das `EXAMINE`-Feld den Typ (Alpha/Binär) hat und die Search/Replace-Felder die gleiche Länge im Bereich (1:256) haben.

    - `TRANSLATE INTO (UPPER/LOWER) CASE`

    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)

  - `MOVE` (`ROUNDED`, `SUBSTRING`, `BY NAME`, `LEFT`/`RIGHT JUSTIFIED`, )

  - `MOVE ALL`

  - `MULTIPLY`

  - `RESET`

  - `SUBTRACT`

- #### Statements für die Verarbeitung von logischen Bedingungen:

  - `IF`

  - `DECIDE FOR`

  - `DECIDE ON`

- #### Statements für die Ausführung von Schleifen:

  `FOR`

- `ESCAPE`

- `REPEAT`

## Statements, die nicht kompiliert werden

Der Natural Optimizer Compiler kompiliert nicht die folgenden Statements:

- Ein-/Ausgabe-(I/O-)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`)

### On this page

- Statements, die vom Natural Optimizer Compiler kompiliert werden
- Statements, die nicht kompiliert werden