Articulo de referencia

Lenguaje de control operativo

El lenguaje de control operacional (OCL) es el lenguaje de control de la familia de minicomputadoras IBM System/3 , System/32 , System/34 y System/36 . Es compatible con el ento...

El lenguaje de control operacional (OCL) es el lenguaje de control de la familia de minicomputadoras IBM System/3 , System/32 , System/34 y System/36 . Es compatible con el entorno System/36 de IBM i para garantizar la retrocompatibilidad. Es similar a los lenguajes de control más antiguos, como JCL ( System/370 ), y no guarda relación con los lenguajes de control posteriores ( System/38 e IBM AS/400 ) ni con REXX (AS/400).

Descripción general

Las instrucciones OCL se utilizan para cargar directamente programas de usuario o del sistema en la memoria, asignarles recursos del sistema y transferirles el control del sistema en un proceso denominado ejecución. El hecho de que un programa esté almacenado en el disco duro de un ordenador no implica necesariamente que el ordenador lo procese o ejecute.

Las sentencias OCL se pueden introducir manualmente desde el teclado, pero generalmente se almacenan como un miembro de procedimiento. Un miembro de procedimiento es un miembro libremente editable dentro de una biblioteca; es un archivo fuente. En los sistemas S/32, S/34 y S/36, los procedimientos no se compilan, sino que se interpretan .

Ejemplo

Las sentencias OCL suelen comenzar con dos barras diagonales y al menos un espacio en blanco. Aquí hay un ejemplo de un procedimiento almacenado en un System/36 como miembro PROC1:

** Procedimiento PROC1 Documentación opcional ** ** Escrito por Joe User el 29/05/2006 ** ** // * 'El procedimiento PROC1 se está ejecutando' // * ' // SI ESTÁ ACTIVO-'PROC2,PROC3' IR A OKAY ** IFF significa 'si es falso' ** ACTIVO-'nombre1,nombre2' significa verdadero ** si al menos uno de los programas enumerados se está ejecutando actualmente ** GOTO xxx significa saltar a la declaración ** que tiene una etiqueta xxx y reanuda el procesamiento // PAUSA 'No se puede continuar porque se está ejecutando otro proceso de nómina' ** Detiene la ejecución con un mensaje // CANCELAR Detiene la ejecución de este procedimiento // ETIQUETA OKAY // SI DATAF1-PFILE1 SI DATAF1-PFILE2 IR A NODELT // * 'Precaución, existen datos de pago' Muestra información en el terminal // * ' // * 'Pulsa 1 para continuar y ELIMINAR los archivos existentes' // SI '1'=?1R? CANCELAR Un parámetro se indica mediante signos de interrogación que rodean un número ** El uso de 1R entre signos de interrogación indica ** que el parámetro es obligatorio ** y el procesamiento espera la entrada del usuario. ** CANCELAR significa ir inmediatamente al final del trabajo. // CARGAR $DELET $DELET se utiliza para eliminar archivos // CORRER ** Este programa requiere y procesa, consume, ** Las instrucciones subsiguientes se utilizan como datos hasta una instrucción END. // SI DATAF1-PFILE1 RASGAR UNIDAD-F1,ETIQUETA-PFILE1 ** Elimina condicionalmente un archivo de disco existente // SI DATOSF1-PFILE2 UNIDAD DE RASGUÑO-F1,ETIQUETA-PFILE2 // FIN ** // NODO DE ETIQUETA // CARGAR PR101 PR101 podría ser un programa RPG o COBOL // NOMBRE DEL ARCHIVO-PAYMAST,DISP-SHR PAYMAST es el archivo maestro de nómina // NOMBRE DE ARCHIVO-PFILE1,DISP-NUEVO,REGISTROS-100,EXTEND-100 ** Se crea y asigna un nuevo archivo PFILE1. ** Se asignan 100 registros al PFILE1 ** cuando se utilizan todos, el sistema intenta extenderlo por otros 100 ** cada vez que se llena. // CORRER ** La instrucción END solo es necesaria ** para aquellos programas habilitados ** procesar cualquiera de las siguientes declaraciones como datos ** Dichos datos no necesitan tener el formato de OCL. // INTERRUPTOR 1XX0XXXX Hace que los indicadores U1 a U8 se activen (1), se desactiven (0) o se dejen como estaban configurados previamente (X). ** // LOCAL OFFSET-1,DATA-'PROC1' Coloca PROC1 en el Área de Datos Local (LDA) // DESPLAZAMIENTO LOCAL-101,DATOS-'?USUARIO?' Sustituye el ID de usuario del operador ** Se accede a LDA a través de una estructura de datos, UDS, dentro de un programa RPG. ** Los interruptores (indicadores) LDA y de usuario permanecen disponibles para los programas posteriores. ** hasta que se indique lo contrario ** Es necesario examinar los miembros del subprocedimiento llamados y el código fuente del programa cargado. ** en cuanto a si los interruptores LDA y de usuario se leen o modifican realmente // CARGAR PR102 // NOMBRE DE ARCHIVO-PAYMAST,DISP-SHR DISP-SHR significa que el archivo es compartido, en lugar de acceso exclusivo. ** Otros programas pueden usar PAYMAST al mismo tiempo. // NOMBRE DE ARCHIVO-PFILE,ETIQUETA-PFILE1 NOMBRE/ETIQUETA se utiliza cuando se hace referencia al nombre del archivo RPG ** y la etiqueta del archivo de disco real son diferentes // CORRER // RETORNO Regresa al procedimiento que realizó la llamada; de lo contrario, finaliza el trabajo. 

Este miembro del procedimiento incorpora una variedad de instrucciones OCL, así como expresiones de control de procedimiento (PCE), recursos, que en su mayoría son archivos, que se asignan, y varios pasos de trabajo, es decir, programas que se ejecutan.

Los comentarios se representan con un asterisco en la columna 1 y, en el resto de la columna, se pueden escribir en formato libre. También se pueden colocar después del final lógico de una instrucción, si no hay ningún indicador que señale la continuación de la instrucción en la siguiente línea, como una coma al final.

IBM mantiene manuales disponibles gratuitamente en línea y para su descarga, incluido el OCL 36.

  • "Programación del entorno System/36" (1995) v6r1
  • "Referencia del entorno System/36" (1995) v6r1