Last Updated on 2 Novembre 2025 by Roberto De Pedrini
L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di codice in formato fisso (fixed-format) RPG IV verso il nuovo stile free-format RPG. Secondo la pagina del marketplace:
- Consente di selezionare singole righe o blocchi di codice in formato fisso e, con un clic o il comando appropriato, convertirle in free-format. marketplace.visualstudio.com
- Supporta specifiche di tipo Header (H), File (F), Definition (D) e in parte Calculation (C) e embedded SQL nel formato fisso. marketplace.visualstudio.com
- Offre funzioni “bonus” per editing fisso-format, come Smart Tab e Smart Enter, che aiutano la leggibilità e navigazione nel codice legacy. marketplace.visualstudio.com
Index
🔍 Perché la trovo utile nella modernizzazione RPG
Dal tuo feedback e dalla prova effettuata, ecco i punti che emergono:
- Velocità: La possibilità di evidenziare una porzione di codice (o l’intero programma) e richiamare la funzione “Convert RPG IV to Free Format” elimina molte operazioni manuali nella transizione verso free format.
- Praticità: In progetti di modernizzazione dove si deve intervenire su molti programmi RPG legacy, avere uno strumento che automatizza la conversione di parti selezionate – anziché riscrivere tutto – può ridurre drasticamente il tempo di intervento.
- Compatibilità: Dal momento che supporta diverse specifiche (H, F, D, embedded SQL) e blocchi multipli, è adatta a scenari reali dove il codice misto è la norma.
- Editing migliorato: Le features extra come Smart Tab/Smart Enter aiutano anche lo sviluppo “legacy” prima della conversione, migliorando la manutenzione del codice fisso-format.
⚠️ Limiti e aspetti da valutare
È importante però tener conto di alcune attenzioni prima di considerarla uno strumento completo di refactoring o modernizzazione a tappeto:
- Non è un strumento di refactoring completo: come indicato dal produttore, non è pensato per riscrivere logica o convertire codice RPG II ciclo, né gestisce input/output spec o level-break indicatori in modo automatico. marketplace.visualstudio.com
- Non sempre le specifiche C (C-spec) sono completamente supportate: la documentazione segnala che la conversione di alcune C-spec è “in progress” e potrebbero richiedere interventi manuali dopo la conversione. marketplace.visualstudio.com
- In ambienti complessi: la conversione automatica è un buon inizio, ma ancora serve revisione manuale, test, e integrazione del nuovo codice free-format nella toolchain (compilazione, debugging, performance)
- Nessuna trasformazione automatica di ciclo RPG legacy (RPG II) o strutture datate: se il programma è molto obsoleto, potrebbe essere più efficiente un intervento mirato anziché affidarsi solo all’estensione.
🎯 Consigli pratici per utilizzarla
Basandoci sulla tua prova e sull’esperienza:
- Prima di tutto fai un backup del sorgente legacy e lavora su ambiente di test.
- Identifica blocchi di codice “obbiettivi” della conversione: ad esempio specifiche fisso-format che vuoi modernizzare, o moduli che verranno aggiornati.
- Usa la selezione multipla per blocchi che contengono IF/ELSE, WHENxx, CASxx: l’estensione supporta questi casi ma richiede che l’intera zona sia selezionata per ottenere un corretto risultato. marketplace.visualstudio.com
- Dopo conversione, esegui test di compilazione e verifica della logica free-format risultante.
- Usa le impostazioni avanzate dell’estensione (es. configurare
rpgiv2free.removeFREEDirective, oppure definire variabili temporanee custom) per personalizzare la conversione al tuo standard. marketplace.visualstudio.com - Valuta un piano di progressive conversioni: non convertire tutto in una volta, ma passo passo, e integra il nuovo codice free-format nei tuoi flussi di sviluppo.
🧭 In conclusione
La estensione di Bob Cozzi un ottimo strumento di supporto per chi affronta la modernizzazione del codice RPG su IBM i: permette di accelerare la conversione da fixed-format a free-format in maniera semplice, riducendo la fatica iniziale.
Detto questo, non sostituisce (ancora) un processo completo di refactoring o riprogettazione: va usata come acceleratore, non come “soluzione unica”.
Per chi lavora su ambienti legacy, progetti di modernizzazione e vuole ridurre tempi e costi senza abbandonare la qualità del codice, è da considerare sicuramente tra gli strumenti da avere.
Esempio di conversione RPG Fixed – Free



