Générateur automatique de programmes

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Page d'aide sur l'homonymie Pour les articles homonymes, voir GAP.

Le générateur automatique de programmes (GAP) est un langage de programmation destiné à la gestion.

Ce langage paraît sous ce nom sur les systèmes 3 d'IBM (ancêtres de l'AS/400); existait sous le nom de RPG (Report Program Generator) dans les systèmes plus anciens d'IBM (1130, 360/370...) Conçu à l'origine pour recycler et convertir les comptables en programmeurs sans les obliger à descendre dans le détail fin des traitements.

  • L'histoire du GAP commence avec les cartes perforées : il lui est donné pour cette raison une syntaxe en colonnes, comme le Fortran ou l'assembleur.
  • Le GAPI puis le GAPII (années 1960 et au-delà) faisaient apparaître l'ordinateur comme une machine Pour traitements batchs. Il gérait un système de boucles implicites masqué au sein du langage (comme le fera APL vers la fin de la même décennie).

Quelques évolutions :

  • Le GAPIII : évolue sans pour autant abandonner le système de machines à état du GAP2, mais conserve sa rigidité et son colonnage[pas clair].
  • Le RPG IV ILE : abandonne en partie le colonnage, introduit quelques notions supplémentaires comme les pointeurs, les fonctions intégrées, les groupes d'activation ... pour tenter de dépasser les limitations originelles.
  • Le RPG V C'est le RPG IV ILE en format full free (on n'utilise plus aucune carte même pour les déclarations).[pas clair]

Description[modifier | modifier le code]

La grammaire originale du langage, assez rudimentaire, comprenait des éléments repris de l'assembleur, du BASIC et du Cobol :

  • les mnémoniques classiques de l'assembleur sont là (move, clear, goto...)
  • il partage avec ce langage et avec le Basic de fonctionner linéairement, et par des boucles cycliques
  • comme langage orienté sur la gestion il comporte, à l'instar du Cobol, des fonctions d'accès aux bases de données et de constitutions d'états (reports en anglais, d'où son nom) nécessaires à la gestion et à la comptabilité
  • Comme le Cobol encore, c'est un langage que certains pensent très rigide et très limité mais amplement suffisant pour traiter les travaux administratifs des entreprises de la distribution (il n'est pas un langage scientifique). Son colonnage possède l'énorme avantage de présenter les instructions sous une forme ordonnée et surtout de permettre à un programmeur expérimenté de repérer facilement une erreur de programmation d'un seul coup d'œil. Il possède un atout considérable en intégrant la notion « d'indicateurs » lui permettant simultanément de tester la valeur d'une donnée sans pour autant surcharger le codage, et ce, aussi bien en entrée ou sortie des données, qu'en cours de calcul. Il est un outil puissant facile et rapide à mettre en œuvre qui n'a rien perdu de ses acquis au cours des versions successives. Un programme Gap est très vite écrit et testé lorsque son programmeur maîtrise bien le langage.

Aujourd'hui le langage possède toutes les fonctionnalités d'un langage procédural moderne.

  • instructions en format libre. Le RPG en format libre présente désormais de grandes similitudes avec des langages tels que Java, Python, ou Perl.
  • accès aux tables par des ordres séquentiel/indexé (comme en GAP 3) ou par du SQL embarqué
  • manipulations des champs date/heure, des champs VARCHAR, des BLOB, etc.
  • utilisations de plus de 120 fonctions intégrées du langage
  • possibilité d'écrire ses propres fonctions, externes avec la technologie ILE, qui peuvent être placées dans un objet OS/400 nommé Programme de Service (une sorte de DLL)
  • possibilité d'appeler des services web, et de d'en publier (en SOAP et en REST), ce qui permet au RPGLE de demeurer un acteur tout à fait valable dans le développement d'application sur IBM i.

Afin de tirer pleinement partie du langage vous devrez éditer vos sources depuis un éditeur, fourni par IBM sous le nom de RDI, il comporte plusieurs plugins qui vous permettront d’éditer et de mettre au point vos développements.

SQL qui est le grand standard des manipulations de données remplace petit les lectures RPG Native.

Des instructions continuent à être ajoutées au fur et à mesure des releases de l'OS/400 et des technologies refresh.

Futur[modifier | modifier le code]

  • Il est utilisé en complément de Java qui est un standard ainsi que de PHP, ZEND fournissant une distribution packagée sous forme de produit sous licence IBM i.
  • Les sources peuvent être stockés dans L'IFS, ce qui permet d'utiliser des outils tels que SVN ou GITHUB...

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

Se reporter aux références indiquées dans l'article System i

Liens externes[modifier | modifier le code]