
La división de identificación de COBOL
Capítulo 6: Hello world e IDENTIFICATION DIVISION
En este capítulo vas a ver para que sirve la IDENTIFICATION DIVISION
de COBOL. Además, ejecutarás tu primer programa con un mensaje en la consola.
Crear un archivo nuevo de COBOL
Empecemos creando un nuevo archivo en OpenCobolIDE. Hazlo como te mostré, desde el menú "File" o bien pulsando las teclas CTRL+N

Elije de "Template" (plantilla), "Program" (programa). Ponle un nombre con la extensión .cbl y selecciona el directorio para crear el archivo. Haz click en "OK" cuando lo tengas todo.
Se te creará un archivo como este:
* Author:
* Date:
* Purpose:
* Tectonics: cobc
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Hello world"
STOP RUN.
END PROGRAM YOUR-PROGRAM-NAME.
Las líneas 1-6
son comentarios. Las puedes borrar.
Te quedará el código así:
IDENTIFICATION DIVISION.
PROGRAM-ID. YOUR-PROGRAM-NAME.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Hello world"
STOP RUN.
END PROGRAM YOUR-PROGRAM-NAME.
Este programa está listo para compilar. Lo puedes ejecutar haciendo click en el símbolo verde o pulsando la tecla F5 .
Lo que hace es imprimir el mensaje "Hello world"
en la consola, gracias al DISPLAY
de la línea 8
.
DISPLAY puede traducirse como mostrar.
D:\Users\PF\bin\test1.exe
Hello world
Process finished with exit code 0
En la línea 1
del resultado, aparece la ruta del ejecutable que se ha generado.
El la línea 4
nos indica el código del proceso, si es 0 es que todo está correcto.
A partir de aquí, voy a obviar estas dos líneas en los resultados.
Para quienes ya programan, este DISPLAY
, puede considerarse como un print
, un método típico de la mayoría de lenguajes de programación.
Codificación de caracteres en OpenCobolIDE
Cambia el valor "Hello world"
por cualquier otra frase respetando las comillas " "
y vuelve a ejecutar el programa.
DISPLAY "Curso de COBOL en Programación Fácil"
Funciona correctamente, pero si has utilizado acentos como yo, verás que la codificación por defecto (windows-1252), no los soporta.
Curso de COBOL en Programaci¾n Fßcil
Ves a la zona de codificación que te mostré anteriormente y pon la codificación UTF-8.
Tras cambiar la codificación, se estropea todo el código y aparece así:
b' IDENTIFIC'
Esto es por falta de alguna funcionalidad en OpenCobolIDE que transforme los caracteres a las diferentes codificaciones.
Deshaz para dejar el código como antes del error. Quita los caracteres incompatibles (en este caso los dos acentos) y cambia de codificación a UTF-8. Recuerda que esto está en el menú "Edit" > "Active editor" > "Encodings".
¡Perfecto! Se muestra correctamente.
Curso de COBOL en Programación Fácil
Recuerda que la codificación de caracteres con la que estás trabajando en OpenCobolIDE aparece en la esquina inferior derecha:

Las divisiones de COBOL
Analicemos este sencillo programa viendo cada una de las divisiones, que gracias a esta plantilla "Program" de OpenCobolIDE ya están escritas y en el orden correcto, si no, tendrías que escribir todo esto cada archivo de COBOL que crearas.
En este capítulo en concreto verás la IDENTIFICATION DIVISION
. En los siguientes, iremos con el resto.
IDENTIFICATION DIVISION
La IDENTIFICATION DIVISION
(división de identificación) es la que contiene información sobre el programa.
Hay que especificarla en la primera línea del programa. No obstante, esta división no es obligatoria de forma estricta, la puedes eliminar y en teoría no pasa nada. Sin embargo, tenemos el párrafo PROGRAM-ID
(Identificador de programa) que si que es obligatorio, por lo que es mejor siempre especificar la IDENTIFICATION DIVISION
para no crear errores inesperados.
Haz la prueba, retira la línea de la IDENTIFICATION DIVISION
y ejecuta de nuevo.
No ocurre nada, todo funciona correctamente. Ahora, vuleve a colocarla.
Y ahora, borra la línea de PROGRAM-ID
. ¿Qué ocurre?
Error de sintaxis, inesperada DATA, que se refiere a la palabra DATA
que se encuentra en donde el compilador espera que esté FUNCTION-ID
O PROGRAM-ID
.
(línea 3) syntax error, unexpected DATA, expecting FUNCTION-ID or PROGRAM-ID
Ya que estamos con PROGRAM-ID
te explico que es para el nombre del programa. Algo que me parece genial, esto ya no se estila en ningún lenguaje de programación que conozca (el nombre suele ser el nombre de archivo). Puede parecer algo inútil, pero no lo es, el identificador (nombre único) que le demos al programa, nos servirá más adelante para realizar importaciones de archivos de COBOL. Además, el toque que le da me encanta.
Cambiemos el nombre. Este deberá seguir unas normas de nomenclatura.
- Los nombres de programa no pueden contener espacios en blanco.
- Aunque se admite un
PROGRAM-ID
que empiece por un número, no lo recomiendo por posibles errores más adelante. - Lo mismo digo con los acentos en codificación UTF-8, se puede, pero mejor no los usues.
- No admiten la mayoría de símbolos. Por ejemplo, el $ o /.
En cualquier caso, si te da un error en PROGRAM-ID
es que has puesto el nombre con algo incorrecto.
También puedes recibir este error:
END PROGRAM
(instrucción fin de programa) 'NOMBRE-PROGRAMA' es diferente a PROGRAM-ID
'OTRO-NOMBRE-PROGRAMA'.
Básicamente, nos está avisando de que la instrucción END PROGRAM
tiene un nombre diferente a PROGRAM-ID
.
END PROGRAM 'NOMBRE-PROGRAMA' is different from PROGRAM-ID 'OTRO-NOMBRE-PROGRAMA'
En conclusión a todo esto, los nombres de PROGRAM-ID
y de END PROGRAM
deben ser siempre iguales.
Prueba de cambiarle el nombre al programa como hago yo en el siguiente ejemplo:
IDENTIFICATION DIVISION.
PROGRAM-ID. PROGRAMACION-FACIL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM PROGRAMACION-FACIL.
Cambiando de tema, por si no te has fijado, los puntos .
son en COBOL el equivalente al punto y coma de la mayoría de lenguajes de programación.
Los puntos finalizan divisiones, secciones, párrafos e instrucciones.
Nombre del autor
Otra cosa que podemos especificar en la IDENTIFICATION DIVISION
, es el nombre del autor con la palabra AUTHOR
(Autor). Esto es opcional.
Es mejor que sigas las normas de nomenclatura del nombre del programa aquí también. De hecho, las puedes utilizar en todo.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Al escribir el nombre del autor, nos aparecerá marcado en amarillo con un "warning" (advertencia):
Author is obsolete in GnuCobol.
Este warning no tiene gran importancia, ya que los warning no avisan de cosas críticas. En este caso dice que AUTHOR
está obsoleto en el estándar GnuCobol que es el que estamos utilizando por defecto en OpenCobolIDE (ya veremos como cambiarlo). Así que lo podemos utilizar básicamente como si fuera un comentario, no afecta en nada más allá de lo informativo. Se han mantenido para proveer compatibilidad a los programas del estándar ANS1974 o anteriores.
GnuCOBOL (anteriormente OpenCOBOL, y por un corto tiempo conocido como GNU Cobol) es una implementación libre del lenguaje de programación COBOL. Fuente: Wikipedia.
Veamos algunos párrafos más, también opcionales.
Fecha de escritura del programa.
Podemos escribir la fecha en que se escribió el programa con DATA-WRITTEN
(fecha de escritura). También lo colocaremos en la IDENTIFICATION DIVISION
.
Esto también está obsoleto.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Fecha de última modificación del programa
Disponemos de DATE-MODIFIED
(fecha de modificación) para indicar la fecha de la última modificación del programa, también obsoleto.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATE-MODIFIED "29/09/2023".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Fecha de compilación del programa
Podemos hasta indicar la fecha de compilación del programa con DATE-COMPILED
. Otra cosa obsoleta.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATE-MODIFIED "29/09/2023".
DATE-COMPILED "30/09/2023".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Aunque todo esto esté obsoleto, lo puedes seguir utilizando a modo informativo.
Especificar el nombre de la empresa
INSTALLATION
nos permite especificar por ejemplo el nombre de la empresa donde se va a instalar y utilizar el programa.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATE-MODIFIED "29/09/2023".
DATE-COMPILED "30/09/2023".
INSTALLATION "Nombre de la empresa".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Especificar la confidencialidad de un programa
Tenemos más verbos obsoletos como SECURITY
. se utiliza a modo de comentario para especificar la confidencialidad que tiene un programa, por ejemplo, si es para fines de software libre podría poner Libre, o si es para una empresa privado.
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATE-MODIFIED "29/09/2023".
DATE-COMPILED "30/09/2023".
INSTALLATION "Nombre de la empresa".
SECURITY "Open source".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Comentario general sobre el programa
Por último, tenemos REMARKS
, el cual nos permite añadir un pequeño comentario general sobre el programa (Otra cosa más obsoleta).
IDENTIFICATION DIVISION.
PROGRAM-ID. CAPITULO-6.
AUTHOR PROGRAMACION-FACIL.
DATE-WRITTEN "08/03/2023".
DATE-MODIFIED "29/09/2023".
DATE-COMPILED "30/09/2023".
INSTALLATION "Nombre de la empresa".
SECURITY "Open source".
REMARKS "Este es un programa de prueba".
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Curso de COBOL en Programación Fácil"
STOP RUN.
END PROGRAM CAPITULO-6.
Suficiente para este capítulo. En el siguiente pasamos a ver la ENVIRONMENT DIVISION
.
Comentarios
Si te quedan dudas sobre el temario, sobre Cobol, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.