Les nouveaux calculs RPG en format libre ont éliminé virtuellement toutes les restrictions liées aux colonnes dans les versions Factor 2 traditionnelles et étendues de la carte C. La figure 1 montre un exemple de code en format libre. En le lisant, on s'aperçoit que malgré son format libre, c'est
Parce que je suis libre (/FREE)
encore du RPG IV, donc pas difficile à comprendre. Tout le coding en format libre apparaît dans un bloc situé entre une directive /FREE au début et une directive /END-FREE à la fin. A l’intérieur du bloc Free, on peut coder des spécifications en format libre en un point quelconque des colonnes 8 à 80 ; aucun identificateur de spécification n’est requis en colonne 6.
Tout le code qui existe à l’extérieur des blocs Free doit se conformer aux restrictions de colonnes standard. Quand le compilateur rencontre une directive /COPY dans un bloc Free, il revient implicitement au format fixe pour le code copié, puis reprend le mode en format libre après la copie. Si le membre /COPY inclut également du code en format libre, il doit placer le code dans son propre bloc Free avec ses propres directives.
On ne peut avoir qu’une instruction par ligne, mais une instruction peut s’étendre sur plusieurs lignes de code (bien que les littéraux numériques ne puissent pas se poursuivre sur de multiples lignes). Les instructions peuvent commencer n’importe où des colonnes 8 à 80n, et on peut décaler (mettre en retrait) les instructions pour bien montrer la structure du code. L’instruction en format libre finit toujours par un point-virgule. La nouvelle syntaxe accepte des commentaires dans la ligne en commençant par une double barre oblique n’importe où dans la ligne.
Généralement, une instruction commence par un code opération ; si ce n’est pas le cas, le compilateur évalue l’instruction comme si un code opération EVAL ou CALLP était présent. Si une instruction est constituée d’une expression d’assignation (avec opérateur = assignment), le compilateur suppose qu’il s’agit de EVAL (A en figure 1). Sinon, il suppose qu’il s’agit de CALLP (B en figure 1).
Notons également en B de la figure 1 que l’on peut désormais faire référence à des procédures qui n’ont aucun paramètre, en codant des parenthèses vides. En utilisant des parenthèses pour coder toutes les procédures, qu’elles aient ou non des paramètres associés, on peut facilement identifier les procédures dans le code et donner aux appels de procédures RPG la même apparence qu’aux appels de méthodes en Java ou C.
On peut inclure des extensions de code opération avec n’importe quel code opération, immédiatement après ce dernier, entre parenthèses. Un blanc au moins doit suivre le code opération (et l’extension éventuelle).
En général, la nouvelle syntaxe supportera les codes opérations RPG traditionnels, mais avec le Factor 1 suivant le code opération au lieu de le précéder :
Code opération Factor 1 Factor 2 Résultat
Il faut séparer chaque élément d’une instruction par au moins un blanc. La figure 2 résume la syntaxe en format libre de chaque code opération RPG IV. Seule la partie soulignée est obligatoire.
La syntaxe en format libre ne permet pas de définir les champs de travail dans des calculs et elle n’autorise pas non plus d’indicateurs résultants. Au lieu d’indicateurs résultants, on utilise des fonctions intégrées (%EOF, %EQUAL, %FOUND) pour consulter les résultats d’une opération. On utilise également les fonctions %ERROR et %STATUS conjointement à l’extension (E) pour détecter des conditions d’erreur. En cas d’erreur, certaines des autres fonctions risquent de n’être pas correctement définies, c’est pourquoi il faut vérifier la condition de %ERROR ou %STATUS avant d’utiliser %EOF, %EQUAL et %FOUND.
La figure 3, qui donne la liste des codes opérations non supportés par la syntaxe en format libre, raconte une toute autre histoire que la figure 2. De nombreux codes opérations anciens comme ADD, Z-ADD, MOVE et SETON, ont été retirés pour céder la place à des remplaçants en format libre, plus jeunes. La plupart des codes opérations enlevés étaient soit obsolètes, soit peu utilisés. Un bon style RPG passe par l’utilisation des structures de remplacement suggérées. Pour les rares cas qui exigent l’un des codes opérations en format fixe (aucune autre opération n’a la force d’un TESTB placé au bon endroit !), on peut bloquer le code entre des directives /END-FREE et /FREE.
Téléchargez cette ressource
Créer des agents dans Microsoft 365 Copilot
Insight vous guide dans l’utilisation de la nouvelle expérience de création d’agents dans Microsoft Copilot Studio, disponible dans Copilot Chat. Découvrez les étapes clés pour concevoir, configurer et déployer ces nouveaux agents et injecter la puissance de l’IA directement dans le flux de travail.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Gouvernance, cybersécurité et agents IA : trois défis clés à relever pour réussir la transition en 2026
- Top 5 des évolutions technologiques impactant la sécurité 2026
- Tendances 2026 : l’IA devra prouver sa rentabilité
- L’identité numérique : clé de voûte de la résilience et de la performance en 2026
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
