COBOL básico

1.- INTRODUCCIÓN

1.1 EL ORDENADOR

Es una máquina que recoge datos, los almacena en memoria y trabaja con ellos para obtener unos resultados: 

            DATOS                         ORDENADOR                        RESULTADOS
               7         _           :           _           4

En un  ordenador distinguiremos dos partes:
  HARDWARE     _           Parte física. CPU, monitor, teclado, …
  SOFWARE       _           Programas e instrucciones. Permiten a la máquina trabajar.

1.2 LENGUAJES DE PROGRAMACIÓN

LENGUAJE - Conjunto de palabras y símbolos establecidos para comunicar información al ordenador. El único lenguaje que entiende el ordenador es el LENGUAJE MÁQUINA , escrito en binario, es decir 0 y 1.

LENGUAJES SIMBÓLICOS - Aparecen en un intento de hacer la programación más sencilla ya que se asemejan más al lenguaje hablado. Se dividen en:

·       LENGUAJES DE BAJO NIVEL: Lenguajes parecidos al de la máquina y orientados hacia ella, son largos y difíciles de leer y ejecutar.  Ej. EMSAMBLADORES.

·       LENGUAJES DE ALTO NIVEL: Lenguajes que facilitan la programación por asemejarse al lenguaje humano. Son universales en tanto que son válidos para todos los ordenadores. Ej. FORTRAN, COBOL, C, PASCAL, BASIC,…

COMPILADOR E INTERPRETE - Se encargan de traducir el lenguaje fuente (BASIC, COBOL…) a lenguaje máquina para que el ordenador lo pueda ejecutar.
Diferencias:
COMPILADOR: Lee el programa y lo graba en lenguaje máquina, si no hay ningún error, hasta que no esté todo correcto el programa no podrá ejecutarse.
INTÉRPRETE: Va traduciendo y ejecutando las instrucciones línea a línea.
Ventajas e inconvenientes:
El compilador es más rápido que el interprete. Una vez compilado un programa, si no tiene ningún error no necesita volver a compilarse ya que se genera uno en lenguaje máquina, por contra el interprete tiene que traducir el programa a lenguaje máquina cada vez que queramos ejecutarlo.
El compilador presenta mayor dificultad en el tratamiento de errores ya que sólo se produce un listado de los errores al final de la compilación, mientras que el intérprete al traducir línea a línea se para en el momento de detectar un error con lo cual es más fácil la depuración de dichos errores.

1.3 DEFINICIÓN DE PROGRAMA

Conjunto de instrucciones escritas en secuencia, que aplicadas a un conjunto de datos y ejecutadas por un ordenador permiten resolver un determinado problema.
La elaboración de un programa tiene tres fases fundamentales:

·       El ANALISIS del problema - Se clasifica la información a tratar y se dan las soluciones previstas.

·       Elaboración de ALGORITMOS - Se desarrollan los planteamientos anteriores de manera genérica.

·       CODIFICACIÓN del programa - Traducción de los algoritmos al lenguaje adecuado.

       Análisis   _   Algoritmo   _  Codificación   _  Compilación    _    Depuración y Pruebas

1.4 COMPONENTES DE UN PROGRAMA

La información manejada por un programa esta compuesta por objetos, expresiones e instrucciones.

1.4.1 OBJETOS DE UN PROGRAMA, DATOS
Constituyen la información elemental que procesa un programa. Se agrupan en dos tipos:
CONSTANTES - Aquellos datos cuyo valor no cambia durante toda la ejecución del programa. Según su valor pueden ser numéricas o alfanuméricas en cuyo caso aparecen entre comillas.
VARIABLES - Pueden tomar distintos valores a lo largo del programa. Pueden ser de tipo numérico, alfabético o alfanumérico.

1.4.2 EXPRESIONES
Expresión es toda combinación de valores constantes y variables unidos por los operadores del lenguaje. Las expresiones pueden clasificarse en numéricas, alfanuméricas y lógicas, estas últimas son aquellas que devuelven verdadero o falso al evaluar la expresión.

1.4.3 INSTRUCCIONES DE UN PROGRAMA
Expresiones que indican una operación a realizar por el ordenador. Según la función que desempeñan en el programa se clasifican en:

a)   Instrucciones de DECLARACIÓN.- Declaran y definen los datos que va a manejar el programa.

b)   Instrucciones PRIMITIVAS.- Son aquellas que son ejecutadas de forma inmediata por el programa. Pueden ser:

·       Inst. de ASIGNACIÓN.- Almacenan en una variable el resultado de evaluar una expresión. Ej. a=a+1

·       Inst. de ENTRADA.- Leen un dato de un periférico y lo almacenan en una variable definida en el programa. Ej. Leer  a

·       Inst de SALIDA.- Escribe en un periférico el valor de un objeto del programa. Ej. Escribir   a

c)   Instrucciones de CONTROL.- Son las encargadas de controlar la secuencia de ejecución de un programa, bien para que se ejecuten o no una serie de instrucciones, o bien para que estas se ejecuten más de una vez. Según su función pueden ser:

·       Inst. CONDICIONALES.- Evalúan el valor de una expresión de tipo lógico y en función del resultado permiten que se ejecute o no un grupo de instrucciones. Existen dos tipos de condicionales.

CONDICIONAL SIMPLE

   si P             Donde P es una expresión lógica que devuelve V o F
       entonces
            intrucción1
            intrucción2
            ……………     Si el resultado de evaluar el valor de P es V, se
            intrucciónN     ejecutan las instrucciones que estén dentro de la
     finsi                        condicional, en caso de ser F no se ejecutan y
                                    se ejecuta la instrucción siguiente a la misma.

CONDICIONAL COMPUESTA

    si P              Donde P es una expresión lógica que devuelve V o F.
        entonces
             ...j   Si el resultado de evaluar el valor de P es V se
     sino             ejecutan las instrucciones del bloque 1 y si por el
             ...k    contrario es F se ejecutan las del bloque 2, de este
     finsi              modo siempre hay un grupo de instrucciones que no
                         se ejecuta nunca.

·       Inst REPETITIVAS o BUCLES.- Hacen que una o más instrucciones se repitan varias veces durante la ejecución de un programa. Existen tres tipos.

REPETIR

            repetir
                          Repite el bloque de instrucciones hasta que la
                      expresión lógica P sea verdadera.
            hasta P

MIENTRAS

            mientras P hacer
                      Repite el bloque de instrucciones mientras la
                      expresión lógica P sea verdadera.
            Finmientras

La principal diferencia entre ambas estructuras es el lugar donde se comprueba la condición de salida (P). En la estructura mientras la condición se comprueba antes de entrar al bucle con lo que si la condición es falsa las instrucciones que estén dentro no se ejecutan nunca, por el contrario en las estructura repetir las instrucciones se ejecutan al menos una vez, pues la condición se comprueba después de pasar por las instrucciones contenidas dentro del bucle.

PARA

            para V = Vi hasta Vf hacer
                       Asigna a una variable V un valor inicial Vi y repite el
                       bloque de instrucciones, incrementando dicho valor de
            finpara     1 en 1 hasta llegar al valor final Vf.

Esta estructura se utiliza cuando se sabe de antemano el número de veces que se va a repetir el bucle.

 


2.- ELEMENTOS DEL LENGUAJE COBOL

2.1 CARACTERES

El carácter es la partícula elemental de cualquier lenguaje. Son todos aquellos símbolos que se permiten para representar palabras.
El lenguaje Cobol admite los siguientes caracteres:
           w Letras del alfabeto de la A a la Z, con excepción de la Ñ, en minúsculas y                    mayúsculas.
          
w Dígitos decimales del 0 al 9.
           w Espacio en blanco.
           w Caracteres especiales: .  ,  ;  :      (  )  +  -  *  /  =  >  <  $

2.2 PALABRAS

Están formadas por los caracteres Cobol permitidos. Se agrupan en:
PALABRAS RESERVADAS o palabras clave: Son identificadores predefinidos que tienen un significado especial para el compilador Cobol. Son las instrucciones del lenguaje.

NOMBRES DEL PROGRAMADOR O IDENTIFICADORES: Son nombres creados para el programa, para reconocer por ejemplo las variables. Para su formación se deben tener en cuenta las siguientes normas:

1.    No pueden tener el mismo nombre que una palabra reservada del lenguaje.

2.    No pueden exceder de 30 caracteres, y estos sólo pueden ser letras, dígitos    y el guión.

3.    Deben comenzar por una letra.

4.    No pueden llevar dos guiones seguidos, y este no puede ser el último   
  carácter del identificador.

5.    No se les pueden intercalar espacios en blanco.

2.2 CONSTANTES O LITERALES

Son valores que no cambian a lo largo de la ejecución del programa. Se dividen en tres grupos:
Constantes NUMÉRICAS - Expresan una cantidad en base 10 que puede ser positiva, negativa, entera o fraccionaria. Para su construcción rigen las siguientes normas:

1.    Se componen de dígitos, el signo + o - y la coma (punto) decimal.

2.    El signo debe escribirse a la izquierda sin dejar espacio en blanco antes de la primera cifra.

3.    La coma no puede ser ni el primer ni el último carácter de la constante.

4.    Como máximo se permiten hasta 18 dígitos.

Constantes ALFANUMÉRICAS – Expresan cualquier combinación de los caracteres Cobol permitidos, con las siguientes reglas de construcción:

1.   No pueden exceder, en ningún caso, de 2047 caracteres.

2.   Pueden contener cualquier carácter ASCII.

3.   Deben ir encerrados entre comillas o apóstrofes.

Constantes FIGURATIVAS – Son constantes predefinidas por el lenguaje que se utilizan para asignar valores iniciales a las variables. Son las siguientes:

-  SPACE o SPACES – Representa uno o más espacios en blanco.

-  ZERO – Representa el valor cero. Puede utilizarse como valor numérico en
 operaciones aritméticas o como literal alfanumérico.

-   ALL ‘carácter’ – Asigna a una variables uno o varios de los caracteres que    se especifican entre comillas.

-   LOW-VALUE – Representa el menor valor a asignar, a una variable alfanumérica.

-    HIGH-VALUE.- Representa el mayor valor a asignar, a una variable alfanumérica.

2.4 REGLAS DE PUNTUACIÓN

1. El punto gramatical, la coma y el punto y coma no pueden ir precedidos por un espacio en blanco, pero deben ir seguidos de él.

2. El paréntesis izquierdo debe llevar un espacio a su izquierda y ninguno a la derecha, y el derecho no puede llevar espacio a su izquierda y si a la derecha.

3. Los operadores aritméticos +,-,*,/.= y los relacionales <,>,=,>=,<= deben ir precedidos y seguidos de un espacio en blanco.

4. Entre dos palabras reservadas sucesiva debe existir al menos un espacio.

5. Los nombres de división, sección, párrafo y procedimiento deben terminar en punto.

2.5 HOJA DE CODIFICACIÓN

La hoja de codificación nos indica como y en que columnas se codifican las instrucciones de los programas COBOL:

Columnas 1 a 3 – Sirven para numerar las páginas del programa. Su uso no es obligatorio.

Columnas 4 a 6 – Sirven para numerar las líneas de cada página. Tampoco es obligatorio usarlas.

Columna 7 – En ella sólo pueden aparecer los caracteres * y con la siguiente función:

*  Indica que la línea que viene a continuación es un comentario explicativo del programa.

Indica que en esa línea continua una constante alfanumérica que quedó interrumpida en la línea anterior.

Columnas 8 a 72 – Es la parte donde se escribe el programa. Se divide a su vez en dos áreas:

Columnas 8 a 11 – Area A.

      En este área deben comenzar:

w Nombres de DIVISION.

w Nombres de SECCION.

w Nombres de PARRAFO.

w Nombres de Procedimiento.

w Indicador FD para descripción de archivos.

w Los números de nivel 01 y 77de descripción de datos, y,

opcionalmente los números de nivel del 02 al 49, el 66 y el 88,

también de descripción de datos.

Columnas 12 a 72 - Area B.

      En esta área deben comenzar:

    w El resto de declaraciones y sentencias del programa.

Columnas 73 a 80 - Son ignoradas por el compilador.

2.6 NOTACIÓN SOBRE FORMATOS DE INSTRUCCIONES COBOL

Para definir la sintaxis de una instrucción se utiliza un formato estándar usado en todos los manuales de Cobol, cuyos símbolos y significados se explican en este punto. Para ello usamos como ejemplo el formato de la instrucción MULTIPLY que permite realizar multiplicaciones.

literal-numérico-1
           MULTIPLY  {                                        }    BY  identificador-2 [ ROUNDED ]
                                   identificador-1

[, identificador-3 [ ROUNDED ] ]

[;  ON SIZE ERROR instrucción-imperativa ]

Mayúsculas: Los términos escritos en mayúsculas son palabra reservadas del lenguaje.

Subrayado: Las palabras reservadas subrayadas y no escritas entre llaves o corchetes son obligatorias al codificar la instrucción. Las no subrayadas son opcionales.

Minúsculas: Especifican la información que debe suministrar el programador. Es obligatoria salvo que este entre corchetes.

Llaves: Es obligatorio elegir una opción entre las escritas dentro de ellas.

Corchetes: La información incluida en ellos es opcional.

Puntos suspensivos: Indican que la información que les precede puede repetirse varias veces.

 


3.- ESTRUCTURA DE UN PROGRAMA COBOL

3.1 INTRODUCCIÓN

Un programa fuente Cobol es un conjunto de instrucciones, párrafos y secciones que se agrupan en cuatro DIVISIONES obligatorias que, escritas en orden, son las siguientes:

IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.

3.2 IDENTIFICATION DIVISION (División de identificación)

Tiene que ser incluida en cada programa fuente. Sirve para proporcionar un nombre para identificar el programa. Opcionalmente se puede especificar información acerca del autor, fecha en que fue escrito, etc.
Consta de siete posibles párrafos siendo obligatorio solamente el primero de ellos. Su formato general es el siguiente:

IDENTIFICATION DIVISION.
PROGRAM-ID. Nombre del programa.
[AUTHOR. Nombre programador.]
[INSTALLATION. Instalación.]
[DATE-WRITTEN. Fecha de escritura.]
[DATE-COMPILED. Fecha de compilación.]
[SECURITY. Comentario.]
[REMARKS. Comentario.]

PROGRAM-ID. Nombre del programa. Es el único párrafo obligatorio y sirve para especificar el nombre del programa. Este nombre será usado por el compilador o en la ejecución del programa para indicar algún error.
El nombre del programa debe ajustarse a las reglas, ya vistas, de formación de un identificador Cobol.

3.3 ENVIR0NMENT DIVISION (División de entorno)

Permite definir el tipo de ordenador para el que fue escrito el programa, así como los dispositivos periféricos necesarios para soportar los ficheros utilizados en el programa. El formato general para esta división es el siguiente:

                  ENVIRONMENT DIVISION.
                  [CONFIGURATION SECTION.
         
         [SOURCE-COMPUTER. Nombre ordenador.]
                  [OBJECT-COMPUTER. Nombre ordenador.]
                  [SPECIAL-NAMES. Nombre especiales.] ]
                  [INPUT-OUTPUT SECTION.
                  FILE-CONTROL.
                           
Control de archivos.
                  [I-O CONTROL.
                             Control de entrada/salida.] ]

3.3.1 CONFIGURATION SECTION (Sección de Configuración)
Esta sección es opcional. Su utilidad es indicar al programa el modelo de ordenador a utilizar y asociar nombres especiales que van a ser usados en el programa.
Para esta última opción se utiliza el párrafo SPECIAL-NAMES siendo interesante la posibilidad de intercambiar la función de la coma y el punto decimal, mediante la cláusula DECIMAL-POINT IS COMMA de la siguiente forma:

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
         DECIMAL-POINT IS COMMA.

3.3.2 INPUT-OUTPUT SECTION (Sección de entrada/salida)
Esta sección es también opcional. Proporciona información al compilador sobre los archivos utilizados en el programa y su relación con los dispositivos externos. Se explicará con detalle a la hora de trabajar con ficheros.

3.4 DATA DIVISION (División de datos)

Se utiliza para realizar una descripción completa de los ficheros que intervienen en el programa, de sus registros lógicos y de las variables de trabajo. Su formato es el siguiente:
                     DATA DIVISION.
                     [FILE SECTION.
                     [Declaración del archivo.
                     [Declaración del registro. ] ] …]
   
                  [WORKING-STORAGE SECTION.
                 
    [77 Declaración de variables independientes.]
                     [01 Declaración de registros.] ]
                     [LINKAGE SECTION.
                     [77 Declaración de variables independientes.]
                     [01 Declaración de registros.] ]
                     [COMMUNICATION SECTION.
                     [Descripción comunicación.]
                     [Declaración de registros. ] ]
                     [SCREEN SECTION.
                     [01 Descripción de pantallas.]]

3.4.1 FILE SECTION (Sección de Ficheros)
En esta sección se describen detalladamente toda la información referente a los archivos utilizados en el programa, así como los registros junto con sus campos y el tipo de datos que se va a almacenar en ellos. Se verá con más detalle en los apuntes de ficheros.

3.4.2 WORKING-STORAGE SECTION (Sección de Trabajo)
En ella se describen las variables usadas por el programa, ya sea con estructura de registro o como campos independientes.
Para declarar una variable es necesario especificar su número de nivel, su nombre, su tipo y longitud, opcionalmente también se le puede asignar un valor inicial.

Números de nivel
Sirven para indicar la relación que existe un campo y otros campos. Los campos de datos pueden clasificarse en:

·  Campos elementales. Un campo elemental es aquel que no puede subdividirse.

·  Campos compuestos. Un campo compuesto está formado por varios campos elementales.

·  Campos independientes. Un campo independiente es un campo de trabajo que no depende de ningún otro.

Los números de nivel que pueden utilizarse son del 01 al 49, 66, 77 y 88. El nivel superior es el 01.
Las normas a seguir para utilizar los números de nivel son las siguientes:

·   El número de nivel 01 sólo puede ir delante del nombre de registro.

·   Los números de nivel 02 a 49 pueden preceder a cualquier campo del registro, elemental o compuesto.

·   El número de nivel 77 se utiliza para describir los campos independientes, las variables.

Cláusula PICTURE
Permite declarar el nombre, el tipo y el tamaño de un campo elemental. Su formato es el siguiente:

                      nn identificador       PIC IS      especificación de formato.

nn especifica el numero de nivel.
identificador es el nombre que se le da a ese campo. Nombre al que podremos hacer referencia posteriormente.
El tipo del campo depende de los caracteres que se empleen para definir la especificación de formato.
La longitud de un campo viene dada por el número de caracteres empleados en la especificación de formato para declarar el campo.
Los campos pueden ser alfabéticos, alfanuméricos y numéricos.

Campos alfabéticos
Permiten almacenar letras y/o espacios en blanco. Para definirlos se emplea el carácter A.
         Ej: 77 NOMBRE PIC A(10).

Campos alfanuméricos
Permiten almacenar cualquier carácter del alfabeto que se esté utilizando. El carácter empleado para definirlos es la X.
         Ej: 77 NIF PIC X(10).

Campos numéricos
Almacenan cualquier valor numérico que no tenga más de 18 cifras. Los caracteres que se emplean para definir un campo de este tipo son 9, S y V.

9 Representa una cifra del 0 al 9, es decir un dígito decimal.
         Ej: 77 PRECIO PIC 9(6).

S Indica la aparición de signo. No es obligatorio, pero si conveniente porque si no Cobol, después de cada operación lo suprime. No ocupa espacio en memoria y cuando se pone, debe ser el primer carácter de la especificación de formato.
         Ej: 77 SALDO PIC S9(7).

V Representa la posición del punto decimal. Se denomina punto decimal implícito ya que no ocupa espacio en memoria y sólo se usa internamente para alinear las partes decimales de los campos cuando se quiere realizar una operación.
         Ej: 77 NOTA PIC 99V99.

PICTURE para edición
Los caracteres descritos hasta ahora para definir los datos numéricos, no sirven para ser visualizados por pantalla. Para se utilizan los caracteres de edición, que son los siguientes:

Z Representa una cifra del 0 al 9. Si la cifra a escribir se corresponde con un 0 no significativo, en su lugar se escribe un espacio en blanco.

* Representa una cifra del 0 al 9. Si la cifra a escribir se corresponde con un 0 no significativo, se escribe en su lugar un asterisco.
Los caracteres Z y * no pueden ir precedidos, pero si seguidos, del carácter 9.

. El punto hace que se inserte un punto decimal para separar la parte entera de la parte fraccionaria al escribir el campo.

, Hace que se inserte este mismo carácter en el lugar que se indica de la especificación de formato.
La cláusula DECIMAL-POINT IS COMMA permite invertir el papel del punto y la coma en las especificaciones de formato para edición.

B, 0 , / Permite insertar un espacio en blanco, un cero o una barra en el lugar que se indican de la picture.

CR, DB Son símbolos bancarios indicativos de crédito y débito. Sólo pueden colocarse a la derecha de la especificación de formato. Se imprimen si el valor del campo es positivo, si no lo es en su lugar aparecen dos espacios en blanco.

$ Colocado en primer lugar de la picture permite la aparición de este carácter en el lugar indicado.
La aparición en una picture de n caracteres $ permite la edición de un valor de n-1 cifras. Si la cifra a escribir se corresponde con un 0 no significativo, se escribe en su lugar un espacio en blanco, excepto a la izquierda de la primera cifra significativa, que se inserta un carácter $.

+ Colocado en primer o último lugar de la picture permite la aparición de un + para valores positivos , o un - para negativos en el lugar indicado.
La aparición en una picture de n caracteres + permite la edición de un valor de n-1 cifras. Si la cifra a escribir se corresponde con un 0 no significativo, se escribe en su lugar un espacio en blanco, excepto a la izquierda de la primera cifra significativa, que se inserta un carácter  + para valores positivos o un
- para valores negativos.

- Colocado en primer o último lugar lugar de la picture permite la aparición de un espacio en blanco para valores positivos o un - para valores negativos en el lugar indicado.
La aparición en una picture de n caracteres
- permite la edición de un valor de n-1 cifras. Si la cifra a escribir se corresponde con un 0 no significativo, se escribe en su lugar un espacio en blanco, excepto a la izquierda de la primera cifra significativa, que se inserta un carácter  - para valores negativos .

Cláusula VALUE
Permite asignar un valor inicial para un campo que se define con PICTURE dentro de la WORKING-STORAGE SECTION.
   
                             Ej:  77 TOTAL PIC 9(5) VALUE 0.

3.4.3 LINKAGE SECTION (Sección de Enlace)
Permite declarar campos de memoria para ser utilizados por otros programas y por consiguiente, conservar los datos de un programa para otro.

3.4.4 COMMUNICATION SECTION (Sección de Comunicaciones)
Permite procesar mensajes y controlar el flujo de los mismos.

3.4.5 SCREEN SECTION (Sección de Pantalla)
Controla la representación de los datos en la pantalla de la forma más optima.

3.5 PROCEDURE DIVISION (División de procedimientos)

Indica la secuencia de operaciones necesarias para resolver un problema dado. Es la parte del programa que se ejecuta (el algoritmo).
Puede ser dividida en secciones y estás a su vez en párrafos. Cada párrafo generalmente agrupará varias sentencias. La división en secciones es opcional y poco utilizada, en cambio, la división en párrafos es muy frecuente.


4.- SENTENCIAS BÁSICAS DE LA PROCEDURE DIVISION

4.1 VISUALIZAR DATOS. DISPLAY

Esta sentencia permite escribir datos en el dispositivos estándar de salida, la pantalla.
                DISPLAY “RESULTADO:” A

Permite visualizar un dato en una posición de pantalla determinada. LINE y POSITION sirven para especificar la fila y la columna donde va a comenzar la operación de escritura.
                DISPLAY “ENTRADA DE DATOS:” LINE 10 POSITION 20

Otras opciones:
ERASE - Borra la pantalla completa. Si se escribe ERASE EOL borrar desde la posición del cursor hasta el final de esa línea, y si se escribe ERASE EOS borra desde la posición del cursor hasta el final de la pantalla.
NO ADVANCING - Hace que el cursor no avance de línea, una vez que se ha ejecutado la sentencia DISPLAY.
HIGH y LOW - Permite visualizar la información en alta (HIGH) o baja (LOW) intensidad de vídeo. El valor por defecto es HIGH.
BLINK - Hace parpadear los datos visualizados.
REVERSE - Los elementos visualizados aparecerán en vídeo inverso.
CONTROL - Permite especificar el color de fondo y el color de los caracteres que se escriben.
         FCOLOR = color - Especifica el color de los caracteres.
         BCOLOR = color - Especifica el color de fondo.
         color  puede ser una constante de las siguientes: BLACK, BLUE, GREEN, CYAN,                     RED, MAGENTA, BROWN o WHITE.
Ej.   DISPLAY ‘HOLA MUNDO’ CONTROL ‘FCOLOR=WHITE,BCOLOR=BLUE’

4.2 LEER DATOS. ACCEPT

Permite asignar valores a uno o más variables desde el teclado.
   
                     ACCEPT A

Al igual que DISPLAY, también permite efectuar la entrada de datos  colocando el cursor en una determinada posición, usando LINE y POSITION.
   
                     ACCEPT A LINE 10 POSITION 20

También funcionan con ACCEPT las opciones ERASE, HIGH, LOW, BLINK, REVERSE y CONTROL, todas ellas con las mismas funciones que en DISPLAY. Además existen las siguientes posibilidades:
TAB - Obliga a pulsar Enter cuando tecleando la entrada del campo leído se llega al final del campo. Si no se especifica TAB no es necesario.
NO BEEP - Suprime el sonido emitido por defecto al ejecutar la orden.
PROMPT [literal] - Marca sobre pantalla con el carácter especificado las posiciones vacías mientras se ejecuta la orden. Si no se indica carácter por defecto se utiliza el subrayado.
UPPER - Convierte la entrada a mayúsculas. Tiene que utilizarse con CONTROL.
Ej.       ACCEPT NOMBRE NO BEEP CONTROL “UPPER,BCOLOR=BLUE"

4.3 INTRUCCIÓN DE ASIGNACIÓN. MOVE

Esta sentencia permite transferir datos de una variable a otra u otras. Los datos que se transfieren deben ser del mismo tipo que la variable a la que se mueven. Después de realizarse la operación de mover, las dos variables contendrán los mismos datos.
                       MOVE   0   TO   SUMA             _       SUMA=0
                       MOVE   A   TO   MAYOR          _       MAYOR=A

4.4 SENTENCIA ADD

Permite sumar dos o más operandos numéricos y almacenar el resultado en uno o más campos de datos.

Opción TO
Esta opción hace que los valores de los operandos a su izquierda sean añadidos a los valores de los operandos a su derecha. Todos los operandos tienen que ser numéricos de trabajo.
                      ADD 1 TO CONT                     _       CONT=CONT+1
                      ADD A TO B C                         _       B=B+A        C=C+A

Opción GIVING
La suma de los valores de los operandos que preceden a GIVING se almacenan en los campos que están a continuación. Los campos que estan a continuación de GIVING pueden ser numéricos de trabajo o de edición.
                       ADD A B GIVING CONT           _       CONT=A+B
                       ADD A B GIVING S T                _       S=A+B        T=A+B

4.5 SENTENCIA SUBTRACT

Se utiliza para restar un dato numérico, o la suma de dos o más datos numéricos, del valor de una o más variables, dejando el resultado en uno o más campos.

Opción FROM
Los operandos que preceden a FROM se suman y el total se resta del valor actual de la variable que esta a continuación, almacenando el resultado en ella misma. El proceso se repite para el resto de variables que sigan a FROM.
                         SUBTRACT 1 FROM A              _ &