Le Générateur automatique de programmes 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.
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 editer 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
- 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 I5/OS".
- Les programmes en place sont maintenus, et remplacés petit à petit par les SSII qui ont fait elles aussi évoluer leurs normes.