24/06/2014
El mundo de la programación en plataformas IBM i ha experimentado una transformación radical en los últimos años, y en el centro de esta revolución se encuentra el RPG en formato libre. Si vienes del mundo del RPG de formato fijo, con sus rígidas columnas y su sintaxis arcaica, o si eres un desarrollador de lenguajes modernos como Java o Python que mira con curiosidad el entorno IBM i, este artículo es para ti. El RPG Free no es simplemente una actualización; es un cambio de paradigma que aporta la flexibilidad, legibilidad y potencia de la programación contemporánea a una de las plataformas empresariales más robustas y fiables del mundo. Olvídate de las limitaciones del pasado y prepárate para descubrir cómo escribir código más limpio, más rápido y de manera mucho más intuitiva.

¿Qué es Exactamente el RPG en Formato Libre?
El RPG (Report Program Generator) ha sido durante décadas el lenguaje de programación por excelencia en los sistemas AS/400, iSeries y ahora IBM i. Su versión original, conocida como RPG de formato fijo, obligaba a los programadores a escribir su código en columnas específicas. Por ejemplo, las definiciones de archivos iban en una columna, los cálculos en otra, y así sucesivamente. Esto, aunque estructurado, resultaba poco flexible y muy alejado de la sintaxis de otros lenguajes.
El RPG en formato libre, o 'Free Format RPG', elimina estas restricciones de columnas. Permite a los desarrolladores escribir código de manera secuencial, como lo harían en C++, Java o Python. El código fluye de izquierda a derecha, de arriba abajo, sin la necesidad de preocuparse por la posición exacta de cada operación. Este cambio no solo es estético; impacta directamente en la productividad, la facilidad de mantenimiento y la curva de aprendizaje para nuevos programadores. Aunque el código sigue estando técnicamente contenido entre las columnas 8 y 80, las antiguas directivas del compilador /FREE y /END-FREE ya no son necesarias en las versiones más modernas del lenguaje, permitiendo que todo el miembro fuente sea escrito en este nuevo y liberador formato.

Las Claves del Formato Libre: Sintaxis y Estructura
Para dominar el RPG Free, es fundamental comprender algunos cambios clave en su sintaxis. Estos elementos son los que le dan su carácter moderno y su facilidad de uso.
- El Punto y Coma (;) como Delimitador: A diferencia del formato fijo, donde el final de una línea implicaba el final de una sentencia, en formato libre cada instrucción debe terminar explícitamente con un punto y coma (
;). Esto permite escribir múltiples sentencias cortas en una misma línea o dividir una sentencia larga en varias líneas para mejorar la legibilidad. - Comentarios Modernos (//): ¡Adiós al asterisco (*) en la columna 7! En formato libre, los comentarios se inician con una doble barra diagonal (
//). Lo mejor de todo es que pueden colocarse en cualquier lugar: al inicio de una línea para comentar un bloque completo o al final de una sentencia de código (comentarios en línea) para explicar una lógica específica. - Declaraciones Simplificadas: Las antiguas especificaciones H, F, D, I, C, O han sido reemplazadas por sentencias de declaración mucho más intuitivas. Ahora, las variables se declaran con
Dcl-s(declaración standalone), los archivos conDcl-f, las constantes conDcl-cy los prototipos y procedimientos conDcl-pryDcl-pi. Esto hace que el código sea auto-documentado y mucho más fácil de seguir. - Operaciones Directas: El código de operación
EVAL, que era omnipresente en el formato libre inicial, ahora es opcional en la mayoría de los casos. Las asignaciones y cálculos se pueden escribir de forma directa, por ejemplo:Total = Numero1 + Numero2;. Esto reduce la verbosidad del código y lo hace mucho más limpio.
¡Manos a la Obra! Nuestro Primer Programa en RPG Free
La mejor manera de entender el poder del formato libre es viéndolo en acción. A continuación, te presentamos un programa sencillo que recibe dos números como parámetros, los suma y muestra el resultado. Analizaremos cada línea para que no quede ninguna duda.

**free Dcl-s Total Packed(10:0) Inz(*Zero); Dcl-pi *N; Number1 Packed(5:0); Number2 Packed(5:0); End-pi; // Lógica principal del programa Total = Number1 + Number2; Dsply ('El resultado es: ' + %Char(Total)); *INLR = *ON; Return; Análisis Detallado del Código
free: Esta directiva al inicio del código fuente indica al compilador que todo el código a continuación está en formato totalmente libre. Es la forma más moderna y recomendada de empezar un programa.Dcl-s Total Packed(10:0) Inz(*Zero);: Aquí declaramos una variable llamadaTotal.Dcl-ssignifica 'declaración standalone'. Se define como de tipo numérico empaquetado (Packed) con 10 dígitos y 0 decimales.Inz(*Zero)la inicializa a cero.Dcl-pi *N; ... End-pi;: Este bloque define la interfaz del programa (*Nindica el nombre del programa). Dentro, declaramos los dos parámetros de entrada que recibirá:Number1yNumber2, ambos numéricos empaquetados de 5 dígitos.// Lógica principal del programa: Un ejemplo claro de un comentario de línea completa.Total = Number1 + Number2;: El corazón de nuestro programa. Una asignación directa y legible que suma los dos números recibidos y guarda el resultado en la variableTotal. Observa la ausencia del código de operaciónEVAL.Dsply ('El resultado es: ' + %Char(Total));: Usamos la operaciónDsplypara mostrar un mensaje. La función incorporada (BIF)%Char()convierte el valor numérico deTotala un formato de caracteres para que pueda ser concatenado con el texto del mensaje.*INLR = *ON;: Esta es una instrucción clásica de RPG que se mantiene en formato libre. Activar el indicadorLR(Last Record) le dice al programa que, una vez termine su ejecución, debe liberar los recursos y finalizar. Es la forma correcta de terminar un programa.Return;: Esta instrucción devuelve el control al programa que llamó al nuestro. Junto con*INLR = *ON;, asegura una finalización limpia y ordenada.
Comparativa: Formato Fijo vs. Formato Libre
Para apreciar realmente el salto evolutivo, nada mejor que una tabla comparativa que ponga cara a cara ambos estilos de programación.
| Característica | RPG Formato Fijo (Legacy) | RPG Formato Libre (Moderno) |
|---|---|---|
| Sintaxis de Comentarios | Asterisco (*) en la columna 7. | Doble barra (//) en cualquier posición. |
| Fin de Sentencia | Implícito al final de la línea. | Explícito con un punto y coma (;). |
| Declaración de Variables | En la especificación 'D' con formato de columnas. | Con palabras clave como Dcl-s, Dcl-c, etc. |
| Cálculos Aritméticos | Códigos de operación como ADD, SUB, MULT o EVAL. | Expresiones naturales (ej. Var = A + B;). |
| Legibilidad | Baja para programadores no familiarizados. Dependiente de la posición. | Alta, similar a lenguajes modernos. El código se auto-documenta mejor. |
Preguntas Frecuentes (FAQ)
- ¿Puedo mezclar código en formato fijo y formato libre en el mismo programa?
- Sí. Utilizando las directivas
/FREEy/END-FREEpuedes delimitar bloques de código en formato libre dentro de un miembro de formato fijo. Sin embargo, la práctica recomendada para nuevos desarrollos es utilizar el formato totalmente libre (free) para mantener la consistencia y la claridad. - ¿El RPG en formato libre es más lento que el formato fijo?
- No. Absolutamente no. La diferencia entre ambos formatos es puramente sintáctica, es decir, afecta a cómo los humanos escriben y leen el código fuente. Una vez que el compilador procesa el código, el programa objeto resultante es igual de eficiente y rápido, sin importar el formato en que fue escrito.
- ¿Qué herramientas necesito para programar en RPG Free?
- Aunque todavía es posible usar el clásico SEU (Source Entry Utility), su uso no es recomendable para formato libre. La herramienta estándar de la industria es IBM Rational Developer for i (RDi), un entorno de desarrollo integrado (IDE) basado en Eclipse que ofrece resaltado de sintaxis, autocompletado, depuración integrada y muchas otras características que disparan la productividad. También existen extensiones para editores populares como Visual Studio Code.
- ¿Vale la pena aprender RPG en 2024 y más allá?
- Definitivamente. Una cantidad masiva de la lógica de negocio de las empresas más grandes del mundo corre sobre sistemas IBM i. La demanda de desarrolladores que conozcan el RPG moderno es alta y sigue creciendo. Aprender RPG en formato libre no solo te abre las puertas a mantener sistemas críticos, sino también a crear nuevas y potentes aplicaciones en una plataforma increíblemente estable y segura.
Conclusión: El Futuro del Desarrollo en IBM i
El RPG en formato libre ha sido la bocanada de aire fresco que la comunidad de desarrolladores de IBM i necesitaba. Ha derribado las barreras de entrada, ha facilitado la adopción de prácticas de desarrollo modernas y ha demostrado que una plataforma con décadas de historia puede seguir siendo vanguardista y relevante. La flexibilidad, la claridad y la potencia que ofrece no son solo una mejora, sino una invitación a construir la próxima generación de aplicaciones empresariales. Si eres un desarrollador en el ecosistema IBM i, adoptar el formato libre no es una opción, es el camino a seguir.
Si quieres conocer otros artículos parecidos a RPG en Formato Libre: La Guía Definitiva puedes visitar la categoría Juegos.
