par Hans Boldt - Mis en ligne le 03/03/2004
En V5R2, le RPG prolonge les améliorations de la V5R1
A bien des égards, les améliorations
apportées au RPG dans les cinq releases
entre la V3R1 (première release
de RPG IV) et la V5R1, ont été plus importantes
qu'entre RPG III et RPG IV...La première release de RPG IV n'était
guère plus que RPG III avec une nouvelle
syntaxe. Mais les changements
fonctionnels apportés au RPG depuis
lors enrichissent beaucoup plus la programmation
en RPG. Nous, membres
de l'équipe de développement IBM,
avons poursuivi la tendance en V5R2.
Les améliorations qu'apporte la
V5R2 à RPG IV prolongent les bases de
la V5R1. Au point d'ailleurs que plusieurs
des améliorations font appel à
certaines fonctions V5R1 ! Parmi les divers
changements, la V5R2 procure
d'importantes améliorations à la structuration
des données et aux codes opération
d'I/O. Commençons par passer en revue quelques importantes améliorations
de la V5R1.
RPG IV s’améliore à nouveau dans la V5R2
L’amélioration la plus visible et la plus
controversée apportée au RPG en V5R1
était la spec de calcul en format libre.
Les instructions codées entre les directives
/Free et /End-Free sont spécifiées
dans un style en format libre. Comme
pour la plupart des autres langages de
programmation des dernières 40 années,
les instructions peuvent être décalées,
ou mises en retrait, pour bien
montrer la structure logique du code
programme. L’instruction est codée
avec le code opération en premier,
suivi des opérandes Factor 1, Factor 2
et Result Field.
Mais, dans un certain sens, le changement
le plus important était l’ajout
des mots-clés QUALIFIED et LIKEDS à
la spec de définition. Le mot-clé QUALIFIED introduisait dans le langage
la notion de noms qualifiés. Il faut
se référer aux sous-champs dans les
structures de données qualifiées en
utilisant la syntaxe DSName.SubfName
plutôt que le nom du sous-champ seul.
A première vue, cela ressemble à des
noms de sous-champs préfixés mais,
en réalité, c’est beaucoup plus puissant.
Vous pouvez définir une structure
de données en utilisant le mot-clé LIKEDS
et hériter de tous les souschamps
d’une autre structure de données.
Une structure de données
LIKEDS doit obligatoirement être une
structure de données qualifiée pour
éviter la collision de noms. Ce peut
être très utile dans des prototypes de
procédure, car vous pouvez définir les
paramètres de procédure en utilisant
LIKEDS.
Le programme de la figure 1
montre un exemple. Le paramètre de
la procédure Proc est défini comme la
structure de données DS en utilisant
LIKEDS. Ainsi, dans la procédure, le paramètre
Result est défini comme une
structure de données avec les mêmes
sous-champs que la structure de données
itemdesc. Ce devrait d’ailleurs
être la technique à utiliser pour transmettre
des structures de données aux
procédures.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Ready For IT 2026 : IA industrialisée, deepfakes et Prix Start-up au cœur des enjeux
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Ready For IT 2026 : quand l’accélération de l’innovation redessine les priorités des décideurs IT
- Microsoft Build 2026 : industrialiser l’IA agentique dans les environnements d’entreprise
Articles les + lus
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
À la une de la chaîne Tech
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
