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

Sécuriser votre système d’impression
Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Un leadership décisif en matière d’IA propulse l’innovation
- En route vers l’inconnu : comment préparer les équipes à l’ère de l’IA
- L’Europe, un leader mondial de l’IA
- L’Intelligence Artificielle, le nouveau copilote du CRM : une révolution incontournable
- Optimiser la gestion de la relation client dans le secteur des sciences de la vie
