Natural

Natural es un lenguaje de programación de cuarta generación semi-compilado publicado por la empresa alemana Software AG .

Definición

Su sintaxis está fuertemente inspirada en la de Cobol  : contiene instrucciones como mover , ejecutar , calcular , así como principios como la redefinición de datos o la posibilidad de definir el alcance de una variable. Sin embargo, esta sintaxis sigue siendo bastante simple y mucho menos detallada que Cobol:

La ventaja de un lenguaje semi-compilado es su portabilidad en diferentes sistemas ( mainframe , Unix , Windows , etc.); de hecho, basta con portar el “RunTime Natural” a una plataforma para poder ejecutar programas de Natural creados originalmente en otra plataforma (es el mismo principio que el de Java con los puertos de las JVMs .

Este lenguaje se creó originalmente para permitir el acceso a las bases de datos de Adabas (del mismo editor). Creció rápidamente para poder admitir bases de datos relacionales como DB2 o bases de datos no relacionales como DL1, VSAM . Se utiliza principalmente en la industria y las grandes empresas, ya que la base de datos Adabas es compatible no solo en plataformas como Unix o Windows sino especialmente en grandes sistemas que permiten una gestión masiva de E / S.

Las instrucciones para acceder al sistema de gestión de la base de datos (DBMS) son funcionales (ocultan las solicitudes físicas y la organización de los datos): cada instrucción para acceder a una tabla de la base de datos tiene la forma de un bucle de lectura siguiendo una clave simple o compuesta.

Por ejemplo, la lectura tiene la forma de dos palabras clave.

READ Table (Accès à la table → Début boucle de lecture) instruction(s).... sur l'enregistrement gestion de sortie de la boucle de lecture souvent à la discrétion du programmeur END-READ (Marqueur de fin de boucle)

El lenguaje tiene una extensión que también permite la codificación de accesos en forma de consultas SQL .

Ejemplo de fuente natural

DEFINE DATA PARAMETER /* paragraphe de déclaration des paramètres du programme 1 PARAM1 (A001) /* alphanumérique 1 PARAM2 (N004) /* Numérique LOCAL /* paragraphe de déclaration des variables du programme 1 CLE_COMPOSEE (A022) 1 REDEFINE CLE_COMPOSEE /* redéfinition de la variable cle_composee 2 VAR1_1 (A001) 2 VAR1_2 (N020) 1 VAR3 (L) /* booléen 1 VAR4 (D) /* Date 1 VAR5 (N5) /* Numérique sur 5 positions END-DEFINE /* début de programme ON ERROR /* paragraphe de gestion des erreurs WRITE 'erreur N°' *ERROR-NR 'ligne ' *ERROR-LINE 'dans programme' *PROGRAM END-ERROR MOVE PARAM1 TO VAR1_1 MOVE PARAM2 TO VAR1_2 /* le paragraphe find .... end-find définit une boucle de lecture. /* Tant que des enregistrements de la table satisfont aux critères /* de recherche, on revient au début de la boucle pour trouver /* l'enregistrement suivant ... FIND TABLE WITH TABLE.CLE = CLE_COMPOSEE /* boucle de recherche d'enregistrements IF NO RECORD FOUND WRITE 'aucun enregistrement trouve' ESCAPE BOTTOM /* sortie de la boucle de lecture END-NOREC IF TABLE.CHAMP1 = 'toto' ESCAPE TOP /* passage à l'itération suivante /* (pour éviter, par exemple, de traiter /* certains enregistrements) END-IF PERFORM TRAITER_CHAQUE_RECORD_LU END-FIND DEFINE SUBROUTINE TRAITER_CHAQUE_RECORD_LU WRITE TABLE.CHAMP1 TABLE.CHAMP2 END-SUBROUTINE END /* fin de programme

Histórico

Evoluciones

Natural 2006 tiene un vocabulario extenso para procesar documentos XML de forma nativa.

Restos naturales, como Cobol, fuertemente orientados a aplicaciones de gestión, debido a:

enlaces externos