CMS EXEC , o EXEC , es un lenguaje de programación interpretado, de control de procedimientos de comandos, utilizado por el procesador CMS EXEC suministrado con el sistema operativo IBM Virtual Machine / Conversational Monitor System ( VM/CMS ).
Stuart Madnick escribió EXEC para Cambridge Monitor System (CMS) bajo CP-67 en 1966 en el MIT, siguiendo el modelo de CTSS RUNCOM . Originalmente llamó a este procesador COMMAND, y posteriormente lo renombró EXEC. [ 1 ]
CMS EXEC ha sido reemplazado por EXEC 2 y REXX . Los tres —CMS EXEC, EXEC 2 y REXX— siguen siendo compatibles con el producto IBM CMS .
El lenguaje EXEC
- EXEC procesa líneas de hasta 130 caracteres de longitud cuando se introducen desde un terminal, o por defecto [ a ] 72 caracteres cuando se leen desde un archivo.
- Una etiqueta que consta de un guion seguido de hasta siete caracteres alfanuméricos puede anteponerse a un comando CMS o a una instrucción de control EXEC.
- El intérprete analiza los comandos y los divide en secuencias de hasta ocho caracteres delimitadas por espacios en blanco.
- Las variables constan de un signo de ampersand seguido de hasta siete caracteres alfanuméricos. Pueden ser variables definidas por el usuario o variables EXEC predefinidas ("especiales").
- A medida que se lee cada línea, se analizan los tokens. Si contienen variables EXEC, estas se reemplazan por su valor.
- Comentarios . Los comentarios en los archivos EXEC comienzan con un asterisco en la primera columna. Todas las demás instrucciones son instrucciones ejecutables .
- Sentencias nulas . Una sentencia nula no contiene datos.
- Comandos de CMS . Si el primer elemento de datos de una línea no es un asterisco ni un signo de ampersand, el procesador EXEC considera que la línea es un comando de CMS y se la pasa a CMS para su ejecución inmediata.
- Sentencias de asignación . Una sentencia de asignación asigna un valor a una variable EXEC. Tiene la forma
&variable = <arithmetic-expression> - Instrucciones de control . Se asume que una instrucción en la que el primer elemento de datos es una palabra de control EXEC y el segundo no es un signo de igual es una instrucción de control.
- Palabras de control EXEC :
- &ARGS: permite al usuario redefinir los argumentos de los comandos.
- &BEGPUNCH – encabeza una serie de líneas que se enviarán a la perforadora virtual del usuario.
- &BEGSTACK: encabeza una serie de líneas que se colocarán en la pila de entrada de la consola del usuario.
- &BEGTYPE – encabeza una serie de líneas que se deben escribir en la terminal del usuario.
- &END – marca el final de las líneas procesadas por &BEGPUNCH, &BEGSTACK o &BEGTYPE.
- &CONTINUE – indica al intérprete que procese la siguiente línea del archivo.
- &CONTROL: controla el formato en el que se muestran los mensajes.
- &ERROR: indica al intérprete qué hacer si se detecta un error.
- &EXIT: sale del archivo EXEC actual y, opcionalmente, establece un código de retorno.
- &GOTO: salta a otra ubicación en el archivo EXEC actual. La ubicación puede ser TOP para el inicio del archivo, una etiqueta o un número de línea.
- &IF – permite la ejecución condicional de instrucciones.
- &LOOP: encabeza un grupo de instrucciones que se ejecutarán varias veces o hasta que se cumpla una condición específica.
- &PUNCH: envía una cadena de tokens al perforador virtual del usuario. Cada instrucción &PUNCH genera una imagen de tarjeta, rellena o truncada según sea necesario.
- &READ – lee una o más líneas del terminal del usuario .
- &SKIP – omite (ignora) un número específico de líneas.
- &ESPACIO – escribe un número específico de líneas en blanco en la terminal del usuario.
- &STACK – coloca una línea en la pila de entrada del usuario. La línea se construye a partir de tokens, al igual que en &PUNCH.
- &TIME: especifica qué información de tiempo se debe escribir en el terminal del usuario después de la ejecución de cada comando CMS.
- &TYPE – escribe una línea en la terminal del usuario. La línea se construye a partir de tokens, al igual que en &PUNCH.
- Funciones integradas . El intérprete EXEC proporciona algunas funciones "integradas" o predefinidas:
- &CONCAT – concatena una cadena de tokens.
- &DATATYPE: examina un token y determina si es numérico o alfabético.
- &LENGTH – devuelve la longitud de un token.
- &LITERAL – impide la sustitución de variables dentro de un token.
- &SUBSTR – extrae los caracteres seleccionados de un token.
Código de ejemplo
PROFILE EXEC es un programa ejecutable que se ejecuta automáticamente cuando un usuario inicia sesión para personalizar su entorno. Un ejemplo sencillo de PROFILE EXEC podría ser el siguiente:
* El siguiente código emite comandos CMS para configurar * el carácter "blip" para marcar con un asterisco y solicitar * el formato "corto" para los mensajes de sistema listo. &CONTROL APAGADO ESTABLECER BLIP * ESTABLECER RDYMSG SMSG
Lenguajes de control de procedimientos de comandos CMS relacionados
- Ejecutivo de CMS
- EJECUTIVO 2
- REXX
Notas
- ↑ Las declaraciones
&BEGPUNCH,&BEGTYPE ALLy&BEGSTACK ALLpermiten el acceso a 72, 130 y 130 caracteres.
Referencias
- ↑ Varian, Melinda. "VM Y LA COMUNIDAD VM: Pasado, Presente y Futuro" (PDF) . Consultado el 9 de marzo de 2012 .
Enlaces externos
- "El procesador CMS EXEC". Guía del usuario de CMS (1.ª ed.). Septiembre de 2004. Publicación de IBM número SC24-6079-00.
{{cite book}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - "REX – Un lenguaje de programación de comandos" . Compartir 56. 18 de febrero de 1981. Archivado del original el 21 de febrero de 2009.
- IBM Virtual Machine Facility/370: Guía del usuario de EXEC (PDF) (2.ª ed.). Abril de 1975. Número de publicación de IBM GC20-1812-1. Archivado del original (PDF) el 14 de agosto de 2011. Consultado el 14 de marzo de 2012 .
- Sistemas operativos para mainframes de IBM
- Lenguajes de scripting
- Máquina virtual (sistema operativo)