par Bryan Meyers - Mis en ligne le 26/01/2005 - Publié en Mars 2004
Remplacez les codes
opération MOVE par
ses alternatives
en format libre
Parlez de RPG à de nombreux programmeurs et ils se
verront aussitôt assaillis de cartes perforées, de règles de
spécifications et de colonnes fixes. De tous temps, RPG a été
un langage en format fixe dont le code s'est exprimé en
plages de colonnes explicites. Et même le format Factor 2
étendu du RPG IV, qui permet aux expressions de s'étaler
plus à l'aise sur 45 colonnes, ressemble quand même à un
programme essayant de briser ses chaînes ...Puis il y a eu la version 5. Dans cette release, IBM a introduit
une nouvelle spécification de format libre qui offre une
alternative aux cartes C en colonnes traditionnelles. Le RPG
en format libre est plus facile à lire que le format fixe et plus
simple à coder par les programmeurs
RPG et à apprendre par les nouveaux
programmeurs. De plus, la structure
de la logique du programme est plus
facile à lire. Il est donc plus aisé à maintenir
et moins sujet à erreurs.
D'où la question : pourquoi le
monde RPG ne s'est-il pas précipité
vers le format libre ? IBM a profité de
l'occasion pour éliminer le support du
format libre pour de nombreux codes
opération qu'elle jugeait obsolètes.
Ainsi, la nouvelle spécification ne supporte
pas les codes opération qui demandent
un indicateur résultant. Une
omission particulièrement évidente a
été constituée de codes opération
MOVE - généralement des opérations
puissantes qui permettent d'attribuer
des valeurs d'un champ à un autre,
même si les deux n'ont pas le même
type de données ou la même longueur.
Dans cet article, j'explore quelques
techniques permettant de remplacer
les codes opération MOVE par des alternatives
en format libre. Mais voyons d'abord brièvement
comment utiliser le RPG en format libre.
RPG en format libre : Gagner au jeu du MOVE

La figure 1 illustre la spécification de format libre en vigueur.
On la code à l’aide d’une syntaxe RPG familière délimitée par
les directives de compilateur /FREE et /END-FREE. Mais on
n’a pas à se soucier de tout mettre dans les bonnes colonnes.
On peut parfaitement spécifier le code n’importe où à partir
de la colonne 8-80, en laissant les colonnes 6 et 7 vierges.
(L’ironie qui obligeait à spécifier le code en format libre dans
certaines colonnes a apparemment disparu chez IBM.)
Le contenu réel du code en format libre est familier,
excepté que chaque ligne commence par un code opération
au lieu de Factor 1. Le bon ordre d’une spécification est
Opcode(e) Factor1 Factor2 Result ;
Dans deux cas, le code opération est facultatif. On peut
omettre EVAL (Evaluate expression) et CALLP (Call prototyped
procedure/program), sauf s’il est nécessaire de spécifier
une extension :
Tax = TaxableAmount * TaxRate; Eval(h) Tax = TaxableAmount * TaxRate; UpdCustomer(Company:CustomerNbr); Callp(e) UpdCustomer(Company:CustomerNbr);
On peut aligner et/ou décaler le code pour le rendre plus
lisible, continuer une spécification sur plusieurs lignes si nécessaire,
et inclure des commentaires double-slash dans la
ligne, précédés de //. Chaque instruction en format libre se
termine par un délimiteur point-virgule.
Téléchargez cette ressource

Rapport mondial 2025 sur la réponse à incident
Dans ce nouveau rapport, les experts de Palo Alto Networks, Unit 42 livrent la synthèse des attaques ayant le plus impacté l'activité des entreprises au niveau mondial. Quel est visage actuel de la réponse aux incidents ? Quelles sont les tendances majeures qui redessinent le champ des menaces ? Quels sont les défis auxquels doivent faire face les entreprises ? Découvrez les top priorités des équipes de sécurité en 2025.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les PME attendent un meilleur accès aux données d’émissions de la part des fournisseurs
- Fraude & IA : Dr Jekyll vs. Mr Hyde, qui l’emporte ?
- Gestion du cycle de vie des outils de cyberdéfense : un levier de performance pour les entreprises
- Top 6 du Cyber Benchmark Wavestone 2025
- La voix met le clavier au placard : une mutation incontournable pour les entreprises
