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

Démocratiser l’adoption de l’IA par la maîtrise de ses données
Saviez-vous que 80% du temps de vos projets IA portent sur l’analyse de vos données ? explorez tous les outils nécessaires pour entreprendre une gestion performante de vos flux de données et optimiser votre architecture afin de réussir vos projets d’Intelligence Artificielle. découvrez le guide des experts Blueway.
Les articles les plus consultés
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Afficher les icônes cachées dans la barre de notification
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Activer la mise en veille prolongée dans Windows 10
- Cybersécurité Active Directory et les attaques de nouvelle génération
Les plus consultés sur iTPro.fr
- Protégez l’accès non authentifié de vos réunions
- Télécommunications et durabilité : les défis d’une transition verte dans un secteur en mutation
- Vulnerability Operation Center : concepts, mise en œuvre et exploitation
- Faire face à l’évolution des cyberattaques : l’urgence d’une cybersécurité proactive
- Le temps où le RSSI était tenu pour seul responsable est révolu – la responsabilité incombe désormais à toute l’entreprise
