Générateur automatique de programmes

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir GAP.

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

  • Apparaît sous ce nom sur les systèmes 36 (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...)
    • L'histoire du GAP commence donc avec les cartes perforées : cela se ressent dans l'obligation d'une syntaxe colonnée.
    • Le GAP2 (années 1960 et au-delà) se comportait comme une machine à états, avec un système de boucles masqué au sein du langage.
  • Quelques évolutions:
    • Le GAP3 : abandonne le système de machines à état du GAP2, mais conserve sa rigidité et son colonnage.
    • Le RPG IV ILE: abandonne en partie le colonnage , introduit quelques notions supplémentaires comme les pointeurs, les fonctions intégrées, ... pour tenter de dépasser les limitations originelles.

Sommaire

[modifier] Description

  • La grammaire du langage ressemblait à celle d'un assembleur rudimentaire:
    • les mnémoniques classiques sont là (move, clear, goto...)
    • quelques fonctions nécessaires à la gestion (recherches de clés dans un fichier, ...)
  • 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.

[modifier] Futur

  • 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 par Java qui est devenu un des standard de facto de l'AS/400 ou par PHP pour lequel la société ZEND vient d'annoncer une version "Zend Core for I6/OS".
  • Les programmes en place sont maintenus, et 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 que quelques entreprises qui utilisent l'AS/400 se servent de ce langage, son futur est aussi questionnable qu'en France.

[modifier] Voir aussi

System_i, iSeries, OS/400

[modifier] References

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

[modifier] Lien externe