Compilation Aspects

#### Search Results

Search

# Compilation Aspects

Below is an overview of the compilation options and parameters that have an influence on how the completed source code is checked by the compiler and how it is generated into Natural internal object code that can be interpreted and executed by the Natural runtime system.

- Compiler Options and Parameters

- Other Parameters Influencing the Compiler

For more information on the Natural compiler and the different system commands for compiling source code, see the section Natural Compiler in the Natural System Architecture documentation.

## Compiler Options and Parameters

Compilation options can be specified at the following levels:

1. #### Statically

   in the Natural parameter module by specifying the

   - parameter macro `NTCMPO`

   - profile parameters `FS`, `XREF`

2. #### Dynamically

   by specifying the profile parameters

   - `CMPO`

   - `FS`, `XREF`

3. #### Within a Natural session

   by specifying

   - `COMPOPT` system command options

   - `GLOBALS` system command (session parameter `FS`)

4. #### For the current Natural object

   by specifying

   - one or multiple `OPTIONS` statements

     (offering the same options as the `COMPOPT` system command and, in addition, Natural Optimizer Compiler options);

   - `SET GLOBALS` statement (only session parameters `LS`, `PS`, `ZP`)

## Other Parameters Influencing the Compiler

The settings of the following profile or session parameters are considered during compilation and may give rise to an error message in case the source code contains different settings:

Parameter Name | Short Description | Comment
--- | --- | ---
`CFICU` | Unicode and Code Page Support | Output of Unicode constants in I/O statements (for example, `WRITE U'ABC'`) is allowed only when `CFICU=ON`.
`CP` | Default Code Page Name | Specifies the code page of the source.
`DC` | Character for Decimal Point Notation | Character used for separating integer/precision digits when defining fields of format N or P and constants.
`FS` | Format Specification | Allows or disallows the use of variables that were not defined before.
`ID` | Input Delimiter Character | For example, to delimit values in an `INIT` clause.
`LS` | Line Size | Specifies the default size for a print line in a report (0 - 31). The setting can be overwritten by specifying an explicit `FORMAT` statement in the source code.
`PS` | Page Size | Maximum number of lines that may be output by a single I/O statement (for example, `WRITE`). Non-compliance with the basic setting will cause an error. The setting can be overwritten by specifying an explicit `FORMAT` statement in the source code.
`SF` | Spacing Factor | Number of spaces to be inserted between field settings of columns on Natural reports created using a `DISPLAY` statement. The setting can be overwritten by specifying an explicit `FORMAT` statement in the source code.
`SOSI` | Shift-Out/Shift-In Codes for Double-Byte Character Set | Specifies the shift characters to identify a double-byte character set (DBCS) string.
`ZP` | Zero Printing | Output of blanks or zeros for a numerical constant which contains a value of all zeros. The setting can be overwritten by specifying an explicit `FORMAT` statement in the source code.

### On this page

- Compiler Options and Parameters
- Other Parameters Influencing the Compiler