Natural
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Natural est un langage de programmation semi-compilé, édité par la société allemande Software AG.

Définition

Sa syntaxe est fortement inspirée de celle de Cobol : on y retrouve des instructions telles que move, perform, compute, ainsi que des principes tels que la redéfinition de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) ou la possibilité de définir le scope d'une variable (En mathématiques et en logique, une variable est représentée par un symbole. Elle est utilisée pour marquer un rôle dans une formule, un prédicat ou un algorithme. En...). Néanmoins, cette syntaxe reste assez simple et beaucoup moins verbeuse que Cobol :

  • l'en-tête du programme est réduite à sa plus simple expression;
  • il n'y a pas de caractère de fin de ligne;
  • ...

L'intérêt d'un langage semi-compilé est sa portabilité (Selon le contexte, le mot portabilité peut avoir plusieurs significations :) sur différents systèmes (mainframe, Unix, Windows (Windows est une gamme de systèmes d'exploitation produite par Microsoft, principalement destinées aux machines compatibles PC. C'est le remplaçant de MS-DOS. Depuis les années 1990, avec la sortie de Windows 95, son succès commercial...)...) ; en effet il suffit de porter le "RunTime Natural (Natural est un langage de programmation semi-compilé, édité par la société allemande Software AG.)" sur une plateforme pour pouvoir y exécuter des programmes Natural originellement créés sur une autre plateforme (c'est le même principe que celui de Java avec les portages des JVM.

Ce langage fut créé au départ pour permettre l'accès aux bases de données Adabas (Adabas est un système de gestion de base de données (SGBD) fourni par Software AG.) (du même éditeur). Il s'est rapidement enrichi pour pouvoir supporter des bases de données relationnelles comme DB2 (DB2 est un système de gestion de base de données utilisant le langage SQL tout comme (par exemple) Oracle, PostgreSQL ou bien encore MySQL.) ou non relationnelles comme DL1, VSAM. Il est surtout utilisé dans l'industrie et les sociétés de grande taille, car la base Adabas est supportée non seulement sur des plateformes comme Unix ou Windows mais surtout sur de gros systèmes autorisant une gestion d'I/O massive (Le mot massif peut être employé comme :).

Les instructions d'accès au Système de gestion de base de données (En informatique, une base de données (Abr. : « BD » ou « BDD ») est un lot d'informations stockées dans un dispositif...) (SGBD) sont fonctionnelles (elles masquent les requêtes physiques et l'organisation (Une organisation est) des données) : chaque instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une explication pour décrire l'action, le comportement, la méthode ou la tâche qui devra commencer,...) d'accès à une table de la base se présente sous forme d'une boucle de lecture suivant une clé simple ou composée.

Ex: La lecture se présente sous la forme de 2 Mot-clefs.

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 (En informatique, un développeur (ou programmeur) est un informaticien qui réalise du logiciel en créant des algorithmes et en les mettant en œuvre dans un langage de programmation.)      

END-READ (Marqueur de fin de boucle)

Le langage dispose d'extension permettant également le codage (De façon générale un codage permet de passer d'une représentation des données vers une autre.) des accès sous forme de requêtes SQL.

Exemple de Source Natural

      DEFINE DATA PARAMETER /* paragraphe de déclaration des paramètres du programme      1 PARAM1  (A001) /* alphanumérique      1 PARAM2 (N004) /* Numérique (Une information numérique (en anglais « digital ») est une information ayant été quantifiée et échantillonnée, par opposition à une...)      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 (Un booléen en logique et en programmation informatique est un type de variable à deux états. Les variables de ce type sont ainsi soit à l'état vrai...)      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 (find est une commande UNIX permettant de chercher des fichiers dans un ou plusieurs répertoires selon des critères définis par l'utilisateur.) .... end-find définit une boucle de lecture.       /* Tant que des enregistrements de la table satisfont aux critères      /* de recherche (La recherche scientifique désigne en premier lieu l’ensemble des actions entreprises en vue de produire et de développer les connaissances scientifiques. Par extension...), 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      
Page générée en 0.060 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique