NATURAL
From Wikipedia, the free encyclopedia
NATURAL is a Fourth-generation programming language from Software AG. It is largely used for building databases output in plain text form, for example.
* Hello World in NATURAL WRITE 'Hello World!' END
It has the ESCAPE TOP flow control instruction, which is similar to continue in C, C++, Java and other several languages, except that it also works within subroutines to both return from the routine and then continue the calling statement's processing loop.
Like continue, it avoids large amounts of indentation levels when using nested instruction blocks inside any loop.
Example with ESCAPE TOP:
DEFINE DATA LOCAL
1 I (N3) /* 3 digits without decimals
END-DEFINE
FOR I = 2 TO 100
IF (I / 2 * 2) = I AND I > 2
WRITE 'Number' I 'is divisible by 2'
ESCAPE TOP
END-IF
IF (I / 3 * 3) = I AND I > 3
WRITE 'Number' I 'is divisible by 3'
ESCAPE TOP
END-IF
IF (I / 5 * 5) = I AND I > 5
WRITE 'Number' I 'is divisible by 5'
ESCAPE TOP
END-IF
IF (I / 7 * 7) = I AND I > 7
WRITE 'Number' I 'is divisible by 7'
ESCAPE TOP
END-IF
IF (I / 11 * 11) = I AND I > 11
WRITE 'Number' I 'is divisible by 11'
ESCAPE TOP
END-IF
WRITE 'Number' I 'is prime'
END-FOR
END
The levels of indentation can be automatically adjusted with the STRUCT command in the Natural Editor.
The same example, without ESCAPE TOP:
DEFINE DATA LOCAL
1 I (N3) /* 3 digits without decimals
END-DEFINE
FOR I = 2 TO 100
IF (I / 2 * 2) = I AND I > 2
WRITE 'Number' I 'is divisible by 2'
ELSE
IF (I / 3 * 3) = I AND I > 3
WRITE 'Number' I 'is divisible by 3'
ELSE
IF (I / 5 * 5) = I AND I > 5
WRITE 'Number' I 'is divisible by 5'
ELSE
IF (I / 7 * 7) = I AND I > 7
WRITE 'Number' I 'is divisible by 7'
ELSE
IF (I / 11 * 11) = I AND I > 11
WRITE 'Number' I 'is divisible by 11'
ELSE
WRITE 'Number' I 'is prime'
END-IF
END-IF
END-IF
END-IF
END-IF
END-FOR
END

