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
Microsoft 365 Tenant Resilience
Face aux principales failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez une approche en 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Comment prioriser vos chantiers cyber et améliorer durablement la résilience de vos tenants Microsoft 365 ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Scality bouscule le marché du stockage avec une cyber garantie de 100 000 $
- Portails développeurs internes : accélérer l’innovation sans alourdir les budgets
- L’intelligence de « l’innovation actionnable » pour anticiper les disruptions plutôt que les subir
- Stratégie de cyber résilience : la France en avance sur la prise de conscience mais en retard sur les moyens
Articles les + lus
Analyse Patch Tuesday Mars 2026
Confiance et curiosité : les clés pour entrer (et grandir) en tant que femme dans la tech
Portails développeurs internes : accélérer l’innovation sans alourdir les budgets
Pourquoi Shopify Plus s’impose dans la transformation du e-commerce B2B
Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
À la une de la chaîne Tech
- Analyse Patch Tuesday Mars 2026
- Confiance et curiosité : les clés pour entrer (et grandir) en tant que femme dans la tech
- Portails développeurs internes : accélérer l’innovation sans alourdir les budgets
- Pourquoi Shopify Plus s’impose dans la transformation du e-commerce B2B
- Quand l’innovation échappe à ses créateurs: Comment éviter l’effet Frankenstein à l’ère de l’IA
