> Tech > En avant avec le RPG en format libre

En avant avec le RPG en format libre

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Gary Guthrie
Quiconque utilise le RPG depuis un certain temps se souvient des clameurs en faveur du RPG en format libre. Parfois chaudes, les discussions portaient sur le besoin de la part d'IBM d'orienter le RPG dans cette direction « plus moderne ».
à‡a a pris du temps, mais avec la V5R1, IBM a introduit le RPG en format libre. Les différences entre le format fixe et le format libre constituent, pour l'essentiel, une grande amélioration.Pourtant, de nombreux RPGistes ont exprimé des doléances - certaines fort banales - à  propos des décisions de conception d'IBM. En tête de liste des doléances, on trouve le manque de support du RPG en format libre pour plusieurs codes opération présents dans le format fixe. N'ayez crainte : vous pouvez mettre en oeuvre des solutions RPG en format libre - mais un peu différemment.
Pour faciliter la transition au RPG en format libre, je passe en revue les 57 codes opération non pris en charge (figure 1) et indique les méthodes alternatives permettant d'accomplir leurs tâches. J'indique même certains cas où les alternatives sont préférables. C'est si vrai que vous devriez tirer parti de nombreuses nouvelles alternatives même si vous utilisez le RPG en format fixe.
Tout en vous instruisant sur le RPG en format libre et sur ses différences, sachez qu'on le destine davantage à  de nouveaux projets de développement qu'à  la conversion d'applications existantes. Mais cette conversion est néanmoins tout à  fait possible.

Retrouvez toutes les figures explicatives dans l'édition papier de cet article : iSeries News Vol.1 N°3 - Mars 2002

En avant avec le RPG en format libre

Bon nombre des codes opération non
supportés ont une alternative en format
libre. C’est le cas, entre autres, des
opérations mathématiques que la figure
2 présente avec leurs alternatives.
La comparaison suivante démontre
que la version en format libre présente
le double avantage d’être plus concise,
et de refléter l’intention de l’opération
plus clairement que le format fixe :

C        X     Mult     Y       Z
 Z = X * Y;

Cette instruction en format libre
est en fait une instruction Eval. Le code
opération Eval est facultatif quand aucune
extension du code opération
n’est nécessaire.
Vous savez peut-être qu’il faut utiliser
les règles de précision décimale du
résultat (Result Decimal Precision)
(voir WebSphere Development Studio
ILE RPF Reference (SC09-2508)) pour
des instructions Eval contenant des
opérateurs de multiplication ou de division.
Ces règles stipulent que les valeurs
intermédiaires utilisées dans des
calculs n’auront pas moins de décimales
que le résultat. On peut appliquer
les règles de précision décimale
du résultat au niveau du module ou au
niveau de l’instruction. Si c’est au niveau
du module, on code les spécifications
de contrôle suivantes :

H ExprOpts(*ResDecPos)

Cette spécification applique les
règles de précision décimale du résultat
à  tous les calculs dans le module. Si
on applique les règles de précision au
niveau de l’instruction, il faut coder le
code opération Eval avec l’extension
requise. Pour appliquer les règles de
précision décimale du résultat à  l’instruction
en format libre ci-dessus, on
coderait

Eval(R) Z = X * Y;

En règle générale, on utilisera les
règles de précision décimale du résultat
quand les opérandes sont des valeurs
non entières.
Outre les règles de précision, il faut
tenir compte des règles de troncature.
Avec les codes opération Add, Sub,
Mult et Div en format fixe, le RPG
tronque les résultats quand ils dépassent
ce que le champ résultat spécifie.
Avec l’instruction Eval (comme le RPG
en format libre le requiert), il n’y a pas
de troncature : si le champ résultat
n’est pas suffisamment grand pour recevoir
le résultat d’un calcul, le système
émet une erreur.

Il est vrai que la plupart des programmeurs
RPG sont habitués à  la
« fonction » troncature du RPG et jugent
indésirable le comportement générateur
d’erreurs d’Eval. Ils autorisent
donc les champs résultat à  déborder
sans erreurs, suscitant ainsi des informations
inexactes, dont certaines peuvent
se retrouver profondément intégrées
dans la base de données, à  l’abri
de toute détection. Non seulement la
fonction troncature du RPG n’est pas
fiable, mais son utilisation produit un
code non intuitif. Il n’est pas sain d’accomplir
une tâche en s’appuyant sur
les astuces et bizarreries du RPG.
Le RPG en format libre vous oblige
à  connaître et à  traiter les sujets de
troncature quand vous convertissez
des programmes existants, et encourage
de meilleures pratiques de programmation.
C’est, selon moi, un pas
dans la bonne direction.

Téléchargez cette ressource

Guide de cybersécurité en milieu sensible

Guide de cybersécurité en milieu sensible

Sur fond de vulnérabilités en tout genre, les établissements hospitaliers, pharmacies, laboratoires et autres structures de soin font face à des vagues incessantes de cyberattaques. L’objectif de ce livre blanc est de permettre aux responsables informatiques ainsi qu’à l’écosystème des sous-traitants et prestataires du secteur médical de se plonger dans un état de l’art de la cybersécurité des établissements de santé. Et de faire face à la menace.

Tech - Par iTPro.fr - Publié le 24 juin 2010

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT