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.
- Estructura Básica de un Programa CL
Un programa CL generalmente sigue una estructura específica que incluye:
- Declaración de Variables: Definición de variables que se utilizarán en el programa.
- Comandos de Control: Instrucciones que controlan el flujo del programa.
- 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.
- 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)
yVALUE('Hola')
).
Ejemplo de Comando CL
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.
- 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!
Curso de CL (Lenguaje de Control)
Módulo 1: Introducción a CL
- ¿Qué es el Lenguaje de Control?
- Configuración de tu Entorno
- Sintaxis y Estructura Básica
- Escribiendo tu Primer Programa CL
Módulo 2: Comandos Básicos de CL
- Introducción a los Comandos de CL
- Comandos de Gestión de Archivos
- Comandos de Gestión de Trabajos
- Comandos de Gestión del Sistema
Módulo 3: Variables y Expresiones
- Entendiendo las Variables
- Definiendo y Usando Variables
- Expresiones y Operadores
- Manipulación de Cadenas
Módulo 4: Estructuras de Control
Módulo 5: Comandos Avanzados de CL
- Operaciones Avanzadas de Archivos
- Programación Avanzada de Trabajos
- Comandos de Configuración del Sistema
- Seguridad y Permisos