En este tema, aprenderemos sobre la sintaxis y la estructura básica del Lenguaje de Control (CL). Este conocimiento es fundamental para escribir programas CL efectivos y eficientes.

Objetivos de Aprendizaje

  • Comprender la estructura básica de un programa CL.
  • Familiarizarse con la sintaxis de los comandos CL.
  • Aprender a escribir y ejecutar un programa CL simple.

  1. Estructura Básica de un Programa CL

Un programa CL generalmente sigue una estructura específica que incluye:

  1. Declaración de Variables: Definición de variables que se utilizarán en el programa.
  2. Comandos de Control: Instrucciones que controlan el flujo del programa.
  3. Comandos de Ejecución: Comandos que realizan acciones específicas.

Ejemplo de Estructura Básica

PGM        /* Inicio del programa */
DCL        VAR(&VAR1) TYPE(*CHAR) LEN(10) /* Declaración de variable */
DCL        VAR(&VAR2) TYPE(*DEC) LEN(5 0) /* Declaración de variable */

CHGVAR     VAR(&VAR1) VALUE('Hola') /* Asignación de valor a la variable */
CHGVAR     VAR(&VAR2) VALUE(12345)  /* Asignación de valor a la variable */

SNDMSG     MSG(&VAR1) TOUSR(*SYSOPR) /* Envío de mensaje */
ENDPGM     /* Fin del programa */

Explicación del Ejemplo

  • PGM: Marca el inicio del programa.
  • DCL: Declara una variable. En este caso, &VAR1 es una variable de tipo carácter de longitud 10, y &VAR2 es una variable decimal de longitud 5.
  • CHGVAR: Cambia el valor de una variable. Aquí, &VAR1 se establece en 'Hola' y &VAR2 en 12345.
  • SNDMSG: Envía un mensaje. En este caso, el mensaje contenido en &VAR1 se envía al usuario del sistema operativo.
  • ENDPGM: Marca el final del programa.

  1. Sintaxis de los Comandos CL

Componentes de un Comando CL

Un comando CL generalmente tiene los siguientes componentes:

  • Nombre del Comando: La acción que se va a realizar (por ejemplo, CHGVAR).
  • Parámetros: Los detalles específicos de la acción (por ejemplo, VAR(&VAR1) y VALUE('Hola')).

Ejemplo de Comando CL

CHGVAR     VAR(&VAR1) VALUE('Hola')

Explicación del Comando

  • CHGVAR: Nombre del comando que cambia el valor de una variable.
  • VAR(&VAR1): Parámetro que especifica la variable cuyo valor se va a cambiar.
  • VALUE('Hola'): Parámetro que especifica el nuevo valor de la variable.

  1. Escribiendo tu Primer Programa CL

Vamos a escribir un programa CL simple que declare una variable, le asigne un valor y envíe un mensaje.

Ejemplo de Programa CL

PGM        /* Inicio del programa */
DCL        VAR(&MSG) TYPE(*CHAR) LEN(50) /* Declaración de variable */

CHGVAR     VAR(&MSG) VALUE('¡Hola, Mundo!') /* Asignación de valor a la variable */

SNDMSG     MSG(&MSG) TOUSR(*SYSOPR) /* Envío de mensaje */
ENDPGM     /* Fin del programa */

Explicación del Programa

  • PGM: Inicia el programa.
  • DCL VAR(&MSG) TYPE(*CHAR) LEN(50): Declara una variable &MSG de tipo carácter con una longitud de 50.
  • CHGVAR VAR(&MSG) VALUE('¡Hola, Mundo!'): Asigna el valor '¡Hola, Mundo!' a la variable &MSG.
  • SNDMSG MSG(&MSG) TOUSR(*SYSOPR): Envía el mensaje contenido en &MSG al usuario del sistema operativo.
  • ENDPGM: Finaliza el programa.

Ejercicio Práctico

Ejercicio 1

Escribe un programa CL que declare dos variables, les asigne valores y envíe un mensaje concatenado de ambas variables.

Solución

PGM        /* Inicio del programa */
DCL        VAR(&VAR1) TYPE(*CHAR) LEN(10) /* Declaración de variable */
DCL        VAR(&VAR2) TYPE(*CHAR) LEN(10) /* Declaración de variable */
DCL        VAR(&MSG) TYPE(*CHAR) LEN(20)  /* Declaración de variable */

CHGVAR     VAR(&VAR1) VALUE('Hola')       /* Asignación de valor a la variable */
CHGVAR     VAR(&VAR2) VALUE('Mundo')      /* Asignación de valor a la variable */
CHGVAR     VAR(&MSG) VALUE(&VAR1 *CAT &VAR2) /* Concatenación de variables */

SNDMSG     MSG(&MSG) TOUSR(*SYSOPR)       /* Envío de mensaje */
ENDPGM     /* Fin del programa */

Explicación de la Solución

  • DCL VAR(&VAR1) TYPE(*CHAR) LEN(10): Declara una variable &VAR1 de tipo carácter con una longitud de 10.
  • DCL VAR(&VAR2) TYPE(*CHAR) LEN(10): Declara una variable &VAR2 de tipo carácter con una longitud de 10.
  • DCL VAR(&MSG) TYPE(*CHAR) LEN(20): Declara una variable &MSG de tipo carácter con una longitud de 20.
  • CHGVAR VAR(&VAR1) VALUE('Hola'): Asigna el valor 'Hola' a la variable &VAR1.
  • CHGVAR VAR(&VAR2) VALUE('Mundo'): Asigna el valor 'Mundo' a la variable &VAR2.
  • CHGVAR VAR(&MSG) VALUE(&VAR1 *CAT &VAR2): Concatenación de &VAR1 y &VAR2 y asignación del resultado a &MSG.
  • SNDMSG MSG(&MSG) TOUSR(*SYSOPR): Envía el mensaje contenido en &MSG al usuario del sistema operativo.
  • ENDPGM: Finaliza el programa.

Conclusión

En esta lección, hemos cubierto la estructura básica y la sintaxis de los programas CL. Ahora deberías ser capaz de escribir y ejecutar un programa CL simple. En la próxima lección, profundizaremos en los comandos básicos de CL, lo que te permitirá realizar tareas más complejas y útiles.

¡Sigue practicando y nos vemos en la siguiente lección!

© Copyright 2024. Todos los derechos reservados