Natural (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

NATURAL es un lenguaje de cuarta generación de Software AG.

Código del programa ¡Hola Mundo! en NATURAL:

WRITE '¡Hola Mundo!'
END

Tiene la sentencia de control de flujo "ESCAPE TOP", la cual es similar a "continue" en C, o "Continue For" en "Visual Basic.NET 2005", excepto que también funciona dentro de una subrutina para retornar desde la misma y continuar con la siguiente iteracción del bucle de proceso.

Como "continue", evita gran número de indentaciones cuando se usan bloques anidados de instrucciones dentro de cualquier sentencia de tipo bucle.

Ejemplo con ESCAPE TOP:

DEFINE DATA LOCAL
1 I (N3)                                   /* 3 dígitos, sin decimales
END-DEFINE
FOR I = 2 TO 100
  IF (I / 2 * 2) = I AND I > 2
    WRITE 'Número' I 'es divisible entre 2'
    ESCAPE TOP
  END-IF
  IF (I / 3 * 3) = I AND I > 3
    WRITE 'Número' I 'es divisible entre 3'
    ESCAPE TOP
  END-IF
  IF (I / 5 * 5) = I AND I > 5
    WRITE 'Número' I 'es divisible entre 5'
    ESCAPE TOP
  END-IF
  IF (I / 7 * 7) = I AND I > 7
    WRITE 'Número' I 'es divisible entre 7'
    ESCAPE TOP
  END-IF
  IF (I / 11 * 11) = I AND I > 11
    WRITE 'Número' I 'es divisible entre 11'
    ESCAPE TOP
  END-IF
  WRITE 'Número' I 'es primo'
END-FOR
END

Los niveles de indentación pueden ser ajustados automáticamente con el comando STRUCT dentro del Editor de NATURAL.

El mismo ejemplo, sin ESCAPE TOP:

DEFINE DATA LOCAL
1 I (N3)                               /* 3 dígitos, sin decimales
END-DEFINE
FOR I = 2 TO 100
  IF (I / 2 * 2) = I AND I > 2
    WRITE 'Número' I 'es divisible entre 2'
  ELSE
    IF (I / 3 * 3) = I AND I > 3
      WRITE 'Número' I 'es divisible entre 3'
    ELSE
      IF (I / 5 * 5) = I AND I > 5
        WRITE 'Número' I 'es divisible entre 5'
      ELSE
        IF (I / 7 * 7) = I AND I > 7
          WRITE 'Número' I 'es divisible entre 7'
        ELSE
          IF (I / 11 * 11) = I AND I > 11
            WRITE 'Número' I 'es divisible entre 11'
          ELSE
            WRITE 'Número' I 'es primo'
          END-IF
        END-IF
      END-IF
    END-IF
  END-IF
END-FOR
END

Enlaces externos[editar]