Introducción

El RPG de Formato Libre es una evolución del lenguaje RPG que permite a los programadores escribir código de una manera más moderna y legible. A diferencia del formato fijo tradicional, el formato libre elimina las restricciones de columnas y permite una mayor flexibilidad en la escritura del código.

Objetivos de esta sección:

  • Comprender las diferencias entre el formato fijo y el formato libre.
  • Aprender la sintaxis básica del RPG de Formato Libre.
  • Escribir y ejecutar un programa simple en formato libre.

Diferencias entre Formato Fijo y Formato Libre

Formato Fijo

  • Columnas específicas: El código debe estar alineado en columnas específicas.
  • Estructura rígida: Cada tipo de declaración tiene una posición fija.
  • Legibilidad: Puede ser difícil de leer y mantener.

Formato Libre

  • Sin restricciones de columnas: El código puede comenzar en cualquier columna.
  • Estructura flexible: Permite una escritura más natural y moderna.
  • Legibilidad: Más fácil de leer y mantener.
Característica Formato Fijo Formato Libre
Columnas específicas No
Estructura Rígida Flexible
Legibilidad Menos legible Más legible

Sintaxis Básica del RPG de Formato Libre

Declaración de Variables

En formato libre, las declaraciones de variables se realizan de manera más intuitiva.

Formato Fijo:

D Name            S             10A
D Age             S              3P 0

Formato Libre:

dcl-s Name char(10);
dcl-s Age packed(3:0);

Estructuras de Control

Las estructuras de control como if, else, do, for, etc., se escriben de manera similar a otros lenguajes de programación modernos.

Formato Fijo:

C                   if        Age > 18
C                   eval      Status = 'Adult'
C                   else
C                   eval      Status = 'Minor'
C                   endif

Formato Libre:

if Age > 18;
   Status = 'Adult';
else;
   Status = 'Minor';
endif;

Funciones y Procedimientos

La definición de funciones y procedimientos también se simplifica en el formato libre.

Formato Fijo:

P AddNumbers      B
D AddNumbers      PI            10I 0
D  Num1           10I 0
D  Num2           10I 0
C                   return    Num1 + Num2
P                 E

Formato Libre:

dcl-proc AddNumbers;
   dcl-pi *n int(10);
      Num1 int(10);
      Num2 int(10);
   end-pi;

   return Num1 + Num2;
end-proc;

Ejemplo Práctico: Programa Hola Mundo en Formato Libre

Vamos a escribir un programa simple que imprime "Hola Mundo" en la consola.

Código

**free
ctl-opt main(Main);

dcl-proc Main;
   dcl-s Message char(50);

   Message = 'Hola Mundo';
   dsply Message;

end-proc;

Explicación del Código

  1. **free: Indica que el código está en formato libre.
  2. ctl-opt main(Main);: Define la entrada principal del programa.
  3. dcl-proc Main;: Declara el procedimiento principal.
  4. dcl-s Message char(50);: Declara una variable de tipo carácter con una longitud de 50.
  5. Message = 'Hola Mundo';: Asigna el valor "Hola Mundo" a la variable Message.
  6. dsply Message;: Muestra el contenido de Message en la consola.
  7. end-proc;: Finaliza el procedimiento.

Ejercicio Práctico

Ejercicio

Escribe un programa en formato libre que solicite al usuario su nombre y edad, y luego imprima un mensaje personalizado.

Solución

**free
ctl-opt main(Main);

dcl-proc Main;
   dcl-s Name char(50);
   dcl-s Age int(3);
   dcl-s Message char(100);

   dsply 'Ingrese su nombre: ';
   accept Name;

   dsply 'Ingrese su edad: ';
   accept Age;

   Message = 'Hola ' + %trim(Name) + ', tienes ' + %char(Age) + ' años.';
   dsply Message;

end-proc;

Explicación del Código

  1. dsply 'Ingrese su nombre: ';: Muestra el mensaje para solicitar el nombre.
  2. accept Name;: Acepta la entrada del usuario y la almacena en Name.
  3. dsply 'Ingrese su edad: ';: Muestra el mensaje para solicitar la edad.
  4. accept Age;: Acepta la entrada del usuario y la almacena en Age.
  5. Message = 'Hola ' + %trim(Name) + ', tienes ' + %char(Age) + ' años.';: Construye el mensaje personalizado.
  6. dsply Message;: Muestra el mensaje personalizado.

Conclusión

En esta sección, hemos aprendido las diferencias entre el formato fijo y el formato libre en RPG, la sintaxis básica del formato libre y cómo escribir un programa simple. El formato libre facilita la escritura y el mantenimiento del código, haciéndolo más legible y moderno. En la próxima sección, exploraremos los conceptos de ILE y cómo integrarlos en nuestros programas RPG.

© Copyright 2024. Todos los derechos reservados