The Natural nucleus consists of two functional parts: the environment-dependent nucleus and the environment-independent nucleus.
The environment-dependent nucleus contains components that depend on the mainframe operating system or TP system (online interface) in use.
The environment-independent nucleus can be shared by different mainframe operating and TP systems and used simultaneously by multiple users. The environment-independent nucleus comprises the kernel of Natural which supplies important Natural functions such as command interpretation, object compilation and object execution.
This section describes the main components of the environment-independent nucleus.
The Natural runtime system can be considered a virtual machine that provides the environment necessary for executing Natural objects within an application. The Natural runtime system interprets and executes Natural internal object code (binary meta code).
The section below contains information on:
Internal Natural object code is executed when a Natural object is requested for execution.
Object execution is requested either directly by a user, or
indirectly if the object currently being executed issues a Natural statement
that requests execution of another object. The Natural system command
EXECUTE
, for example, directly executes the
user-written program specified with the command. The Natural
CALLNAT
statement specified in a Natural program, for example,
requests execution of a subprogram.
The Example of Object Loading in the section Natural Buffer Pool illustrates the process flow when executing a Natural program.
The diagram below is a schematic illustration of object execution by the Natural runtime system:
The Natural runtime system consists of two major components: the object starter and the object executor.
The object starter locates the object to be executed in the Natural buffer pool and allocates storage for variable data processed by the object as user session data. Finally, the object starter passes control to the object executor.
The object executor interprets the Natural statements in the
object and executes them one after the other. In the diagram above, for
example, the object executor first processes the READ
statement by
calling the database and retrieving the records requested and then continues
with the MOVE
statement.
Example of Object Loading - Natural Buffer Pool
The Natural compiler generates the executable form of Natural source code. Natural source code is human-readable programming code that consists of a sequence of Natural statements. (For information on Natural statements and programming advice, see the Statements documentation and the Programming Guide.)
The Natural compiler reads the source code from the source area.
The source code in the source area is part of the user session data. Source
code is read into the source area by using the Natural system command
READ
or EDIT
. The
compiler checks the syntax of the source code and, if successful, generates
Natural internal object code that can be interpreted and executed by the
Natural runtime system.
When using the appropriate Natural system command, source code can be either compiled and executed, or compiled and stored. The section below describes the types of object module available for storage and the Natural system commands used for object compilation and execution:
A cataloged object is the executable (compiled) form of a Natural object.
It is created by the Natural
compiler and is stored as an object module in a Natural system file. Compiling
source code and creating a cataloged object is referred to as cataloging an
object. A cataloged object is created by using the Natural system command
CATALOG
or STOW
.
At execution time, the cataloged object is loaded into the Natural buffer pool and executed by the Natural runtime system. Natural objects can only be executed or reference one another if they have been stored as cataloged objects in a Natural system file.
A cataloged object cannot be modified or decompiled.
A source object (or a saved object) contains the human-readable form of
Natural source code. Source code is saved as a source object in a Natural
system file by using the Natural system command SAVE
or STOW
.
To execute source code contained in a source object, you need to compile the source code in order to create generated object code that can be interpreted and executed by the Natural runtime system.
Natural provides different system commands for compiling source code. Depending on the Natural system command used, compilation is combined with any of the following actions:
Action | System Command |
---|---|
Compile source code. Perform a syntax check and generate object code. The generated object code is not stored as an object module in a Natural system file. | CHECK |
Compile source code. If successful, store the generated object code as a cataloged object in a Natural system file. | CATALOG |
Compile source code. If successful, store the generated object code as a cataloged object in a Natural system file. Additionally, store the original source code as a separate source object in a Natural system file. | STOW |
Compile source code of a Natural object of the type program. If successful, immediately execute the generated object code. The generated object code is not stored as an object module in a Natural system file. | RUN |
System Commands documentation
Objects for Natural Application Management - Programming Guide
The diagram below illustrates the process flow when compiling
source code with the Natural system command
CATALOG
:
Legend
A user issues the Natural system command
CATALOG PGM01 requesting compilation of the source
code currently contained in the source area and storage of the generated object
code as a cataloged
object with the name PGM01.
|
|
The Natural command interpreter interprets the
command CATALOG and passes on the request to the
Natural compiler.
|
|
The Natural compiler reads the Natural statements currently contained in the source area, checks the syntax and generates object code. | |
The Natural compiler returns control to the Natural command interpreter. | |
The Natural command interpreter stores the generated object code as a cataloged object with the name PGM01 in the current Natural system file. |
The Natural command interpreter checks and executes user command input from a Natural command prompt.
If Natural Security is installed, command execution can be restricted to a single user or a group of users.
System Commands documentation
Natural Security documentation
Natural parameters manage the configuration of a Natural environment.
Natural parameters are used to standardize and automate development and production processes or adapt standard settings to the needs of individual users. A Natural parameter, for example, is used to set defaults for report creation, define the size of a report or define the size of storage area required such as the source area of an editor.
Most of the characteristics of a Natural environment are predefined by Software AG. The Natural administrator can configure different default environment settings valid for all Natural users. A user can adapt the settings to his needs by overriding default environment settings with a dynamic profile parameter or session parameter.
The section below contains information on:
Profile parameters are specified statically or dynamically.
Static parameters are specified in the Natural parameter module, during the installation of Natural. They are used as the default for each Natural session.
Dynamic parameters are specified at the start of a Natural session. You can predefine a set of dynamic parameters with the Natural SYSPARM utility.
Profile Parameters - Parameter Reference documentation
Profile Parameter Usage - Operations documentation
Building a Natural Parameter Module - Operations documentation
SYSPARM Utility - Utilities documentation
Session parameters are specified within an active Natural session and/or within a Natural object. The main purpose of session parameters is to control the execution of Natural programs.
Session Parameters - Parameter Reference documentation
There is a hierarchical structure of the levels at which Natural parameters can be set. A parameter value set on a higher level overrides the value defined on a lower level. For example, when you specify a parameter dynamically, the new parameter value overrides the static specification as set for the corresponding parameter in the Natural parameter module.
The diagram below illustrates when a parameter can be set and the Natural parameter hierarchy from the lowest level at the base of the pyramid to the highest level at the apex:
Natural Parameter Hierarchy - Operations documentation