Générateur automatique de programmes

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
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.

  • Apparaî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 GAP1 puis le Gap2 (années 1960 et au-delà) faisaient apparaître l'ordinateur comme une machine à états. Il gérait un système de boucles implicites masqué au sein du langage (comme le fera APL vers la fin de la la même décennie).
  • Quelques évolutions :
    • Le GAP3 : é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

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 SQL
    • manipulations des champs date/heure, des champs VARCHAR, des BLOB, etc.
    • utilisations de plus de 80 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 d'être appelé par eux, ce qui permet au RPG de demeurer un acteur tout à fait valable dans le développement d'application web.
  • Des produits tiers tentent de pallier la lourdeur de l'éditeur natif, lors de la mise au point. On peut désormais éditer ses sources depuis MS-Windows ou avec une surcouche à Eclipse, fournie par IBM sous le nom de WDSC (Websphere Development Studio Client).
  • Malgré tout, l'héritage des versions précédentes est lourd:
    • Ce langage n'a jamais été normalisé.
    • Des instructions continuent à être ajoutées au fur et à mesure des releases de l'OS/400 (au moins jusqu'à la v5r3).
    • Malgré (ou à cause de) tous les ajouts, la syntaxe reste lourde et les programmes monolithiques.

Futur[modifier | modifier le code]

  • Ce langage n'est plus beaucoup enseigné en France à part chez IBM (son concepteur) ou dans des centres de formation privés.
  • Remplacé petit à petit et partiellement, soit par Java qui est devenu un des standards de facto de l'AS/400, soit par PHP pour lequel la société ZEND vient d'annoncer une version « Zend Core for I5/OS ».
  • Les programmes en place sont maintenus, ou remplacés petit à petit par les SSII qui ont fait elles aussi évoluer leurs normes.
  • Au Québec, ce langage est enseigné dans de rares établissements scolaires (entre autres, le Collège de Valleyfield). Bien qu'énormément d'entreprises qui utilisent l'AS/400 se servent de ce langage, son futur y est à ce jour (2012) aussi incertain qu'en France.

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]