NATURAL
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 <code>ESCAPE TOP</code> flow control instruction, which is similar to <code>continue</code> 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 <code>continue</code>, 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
Another powerful flow control instruction command is the <code>ESCAPE BOTTOM</code>, which is similar to <code>ESCAPE TOP</code> except that it continues the processing from end of the calling statement's processing loop. Example with ESCAPE BOTTOM:
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 BOTTOM END-IF IF (I / 3 * 3) = I AND I > 3 WRITE 'Number' I 'is divisible by 3' ESCAPE BOTTOM END-IF IF (I / 5 * 5) = I AND I > 5 WRITE 'Number' I 'is divisible by 5' ESCAPE BOTTOM END-IF IF (I / 7 * 7) = I AND I > 7 WRITE 'Number' I 'is divisible by 7' ESCAPE BOTTOM END-IF IF (I / 11 * 11) = I AND I > 11 WRITE 'Number' I 'is divisible by 11' ESCAPE BOTTOM END-IF WRITE 'Number' I 'is prime' END-FOR END
Translation of "NATURAL"
German: Natural (Programmiersprache), Spanish: Lenguaje de programación Natural, French: Natural, Portuguese: Natural.
|