Inicio topics COBOL ¿Qué es COBOL?
Explore la solución de modernización de aplicaciones para mainframe de IBM Suscríbase a las actualizaciones sobre la IA
Ilustración con collage de pictogramas de engrane, brazo robótico, teléfono móvil

 

Publicación:  19 de abril de 2024
Colaboradores: Chrville R. China, Michael Goodwin

¿Qué es COBOL?

El lenguaje de programación Common Business Oriented Language (COBOL) es un lenguaje de programación compilado de alto nivel, similar al inglés, que se desarrolla específicamente para las necesidades de procesamiento de datos comerciales. 

COBOL se diseñó teniendo en cuenta una versatilidad óptima; su verbosidad permite a los programadores emplear un lenguaje de programación legible y fácil de mantener que puede funcionar en computadoras centrales y sistemas operativos. De hecho, fue uno de los primeros lenguajes de programación estandarizados por el Instituto Nacional Estadounidense de Normalización (ANSI) y la Organización Internacional de Normalización (ISO).

Aunque COBOL se considera un sistema heredado, muchas organizaciones gubernamentales y del sector privado continúan usándolo para ejecutar aplicaciones financieras, administrativas y comerciales. De hecho, la configuración imperativa, procedimental y (en sus iteraciones más recientes) orientada a objetos de COBOL sirve como base para más del 40 por ciento de todos los sistemas bancarios en línea.1

También soporta el 80% de las transacciones con tarjeta de crédito en persona, gestiona el 95% de las transacciones en cajeros automáticos y alimenta sistemas que generan más de 3,000 millones de dólares de comercio cada día.1 Debido a su superior estabilidad y capacidad de procesamiento, sigue desempeñando un papel integral para ayudar a las compañías a mantener aplicaciones y programas en las arquitecturas existentes. 

Reserve una demostración en vivo

Vea IBM watsonx Code Assistant for Z en acción

Contenido relacionado

Suscríbase al boletín de IBM

Historia de COBOL

COBOL fue desarrollado por un consorcio de organizaciones gubernamentales y empresariales llamado Conferencia sobre Lenguajes de Sistemas de Datos (CODASYL), que se formó en 1959. Derivado en parte de FLOW-MATIC, un lenguaje creado por la pionera en informática Dra. Grace Hopper, COBOL fue creado como parte de una iniciativa del Departamento de Defensa de EE. UU. que impulsaba un lenguaje de programación que pudiera funcionar en todos los sistemas operativos (Linux, Windows, Unix, z/OS, etc.), así como entornos de hardware.

La primera versión del lenguaje de programación COBOL se publicó en 1960. Y aunque la programación COBOL se concibió originalmente como una medida provisional, el Departamento de Defensa no tardó en darse cuenta de su utilidad y obligó a los fabricantes de computadoras a ofrecerla.

COBOL finalmente se estandarizó como lenguaje informático en 1968, luego de lo cual los programadores implementaron varias revisiones y modernizaciones, incluidas COBOL-61, COBOL-68, COBOL-74 y COBOL-85. La iteración más reciente, COBOL 2002, intenta hacer que las aplicaciones COBOL sean más compatibles con las prácticas modernas de desarrollo de software mediante la introducción de características orientadas a objetos y otros paradigmas de programación avanzados en el lenguaje. 

Estructura de COBOL

El programa COBOL tiene una estructura jerárquica que comprende divisiones, secciones, párrafos, oraciones, verbos y cadenas de caracteres. La naturaleza divisional de un sistema COBOL (que comprende cuatro divisiones) permite una clara separación de preocupaciones dentro de los programas COBOL.

Las divisiones de COBOL son las siguientes:

División de identificación

La división de identificación es la primera división de un programa COBOL —y una obligatoria. Asigna un nombre al programa y proporciona otros datos de identificación, como el autor, la fecha de escritura y una breve descripción de su finalidad.

Los programas COBOL necesitan un párrafo PROGRAM-ID para funcionar dentro de la división de identificación. Por ejemplo:

```

DIVISIÓN DE IDENTIFICACIÓN

ID-PROGRAMA Nombre del programa

AUTOR. Su nombre

FECHA DE ESCRITURA. AAAAMMDD

COMENTARIO. "Breve descripción del programa"

División de Medio Ambiente

La división de entorno especifica el entorno de tiempo de ejecución de un programa y define los recursos de entrada y salida que empleará. Se subdivide en dos secciones.

Como era de esperarse, la sección de configuración proporciona información sobre la configuración del sistema, incluidas las características de computadora y compilador que se está utilizando. Sin embargo, debido a los avances en las herramientas del compilador, las secciones de configuración se han vuelto algo obsoletas en los sistemas COBOL modernos, que normalmente pueden inferir y adaptarse automáticamente a su entorno.

La sección de entrada-salida especifica los archivos y dispositivos asociados con los que el programa puede interactuar. Incluye el párrafo FILE-CONTROL, que asigna nombres de archivo dentro del programa a archivos externos, y el párrafo IO-CONTROL, que normalmente contiene información de optimización o secuenciación para operaciones de entrada y salida.

División de datos

La división de datos alberga todas las definiciones de variables, archivos y constantes para el programa. Al igual que la división de medio ambiente, la división de datos se subdivide.

La sección de archivos enumera todos los archivos desde los que el programa leerá o escribirá. Una entrada de descripción de archivo define cada archivo y describe la estructura de los registros en el archivo.

La sección de almacenamiento de trabajo define variables que mantienen sus valores durante la ejecución del programa, incluidos contadores, acumuladores, constantes y cualquier otro almacenamiento de datos que no sea relevante para los archivos IO.

Introducido en iteraciones posteriores de COBOL, la sección de almacenamiento local define las variables asignadas a la implementación del programa o método y desasignados a la terminación, por lo que el almacenamiento local es especialmente útil para los algoritmos recursivos y programas reentrantes.

Por último, la sección de vinculación define los elementos de datos que pasan de un programa a otro.

División de procedimientos

La división de procedimientos contiene el código ejecutable del programa, que se divide en párrafos y secciones que estructuran el código en bloques de código para una mejor legibilidad y un mantenimiento más fácil.

Componentes adicionales

Cada división de un sistema COBOL puede incluir secciones y párrafos, que son análogos a las secciones y párrafos en los lenguajes humanos. Las secciones son las subdivisiones lógicas y nombradas dentro de cada división que contienen uno o más párrafos; sirven como unidades modulares de código que se pueden llamar o invocar dentro del programa.

Los párrafos son colecciones de oraciones, las unidades ejecutables más pequeñas en un programa COBOL, que cumplen una función particular y se identifican por un nombre único. Cada enunciado u oración COBOL dentro de un párrafo comienza con un verbo COBOL (como MOVER, MOSTRAR y AÑADIR) que indica cómo se debe ejecutar el código.

La unidad más básica e indivisible del lenguaje COBOL es un carácter. Las cadenas de caracteres son caracteres o secuencias de caracteres contiguos que forman una palabra COBOL, literal o entrada de comentario, delimitada por separadores.

Sintaxis COBOL

La sintaxis similar al inglés de COBOL se autodocumenta y casi se explica por sí misma, con énfasis en la verbosidad y la legibilidad. Esta característica lo distingue de los idiomas concisos, como FORTRAN. También puede soportar varios tipos de datos diferentes (datos numéricos, alfanuméricos y editados, por ejemplo), pero se basa en algunos componentes sintácticos adicionales para ejecutar un programa.

Frases y enunciados

Las oraciones son líneas de código COBOL que constan de una o más declaraciones terminadas por un punto. Sin embargo, las declaraciones son las instrucciones individuales que orquestan los procesos de manejo de archivos y datos (mediante el uso de verbos como AÑADIR, INICIAR, MOSTRAR y ESCRIBIR, entre otros).

Por ejemplo, los enunciados que incluyen MOVER transfieren datos de una parte de la memoria del sistema a otra; los enunciados con CALCULAR realizan operaciones aritméticas y almacenan los resultados como variables; y los que incluyen LEER recuperan registros de archivos de entrada.

Cláusulas

Las cláusulas son componentes de declaraciones que pueden modificar o calificar cómo se ejecuta una declaración. Una cláusula de imagen como “PIC 9(3)”, por ejemplo, define una variable numérica que puede contener hasta tres dígitos.

Estructuras de control

Las estructuras de control iterativas y condicionales en COBOL permiten que el sistema controle el flujo de datos.

Las estructuras "SI ... DE LO CONTRARIO", por ejemplo, implementan la lógica condicional en COBOL para que el programa pueda ejecutar diferentes bloques de código en función de una evaluación de la condición del sistema. Y el enunciado que incluye REALIZAR ejecuta un párrafo o sección un número determinado de veces o hasta que se cumple una condición, de forma similar a las funciones de otros lenguajes de programación.

Subprogramas

COBOL puede facilitar la programación modular mediante el uso de subprogramas, los cuales se despliegan desde el programa principal u otros subprogramas. Mientras que los subprogramas internos se definen dentro del mismo código fuente que el programa de llamada (escrito en la división de procedimientos), los subprogramas externos se compilan por separado y se vinculan según sea necesario.

Creación de un programa COBOL

El proceso de creación de un programa con COBOL varía según las circunstancias organizacionales. Sin embargo, tiende a implicar algunos pasos clave. 

  • Cómo escribir el programa. Si un ingeniero de software quisiera escribir el programa básico "¡Hola, mundo!", por ejemplo, escribiría:

    ```

    DIVISIÓN DE IDENTIFICACIÓN. ID-PROGRAMA hola-mundo. DIVISIÓN DE PROCEDIMIENTOS. MOSTRAR "¡Hola, mundo!"

    El uso de un entorno de desarrollo integrado (IDE) compatible con COBOL o un editor de texto puede ayudar con el proceso.

  • Compilación del programa. Al igual que otros lenguajes de programación de alto nivel, el código COBOL debe compilarse antes de ejecutarse. Los compiladores COBOL (como GnuCOBOL, Micro Focus e IBM COBOL Compiler Family) traducen los programas a código de máquina para que la CPU de la computadora pueda entenderlo y ejecutarlo.

  • Ejecución del programa. Cuando se compila el programa, el programador puede ejecutarlo en el sistema de destino. Suponiendo que no haya errores, el programa sigue la lógica de procesamiento de datos definida en la división de procedimientos para procesar los datos. El proceso de ejecución generalmente implica leer datos de archivos y bases de datos, realizar cálculos o transformaciones de datos y luego escribir los resultados en archivos o bases de datos.

  • Depuración del programa (si es necesario). Si hay errores o bugs en el programa, los programadores deben identificarlos y solucionarlos (proceso llamado depuración). Confiar en herramientas y técnicas de depuración puede agilizar este proceso.
Beneficios de la programación COBOL

A pesar de la proliferación de lenguajes más modernos (como Python, Java, JavaScript), el lenguaje COBOL fue alguna vez el más empleado en la programación informática para aplicaciones empresariales. Incluso ahora, el desarrollo de COBOL sigue siendo una parte funcional y crítica de la infraestructura tecnológica global, particularmente para instituciones bancarias, compañías de seguros y agencias gubernamentales.

Como lo demuestra su poder de permanencia, la programación COBOL puede ofrecer una gran cantidad de beneficios a las organizaciones que eligen emplearla (a pesar de una relativa escasez de programadores COBOL1), que incluyen:

Estabilidad

COBOL es conocido por su rendimiento estable y confiable en aplicaciones de misión crítica. Los sistemas escritos en COBOL tienden a tener un tiempo largo de actividad y experimentan pocas fallas, lo cual es fundamental para las operaciones ininterrumpidas de las instituciones financieras y los servicios gubernamentales.

Escalabilidad

Los desarrolladores pueden escalar aplicaciones COBOL para manejar cargas de trabajo crecientes sin cambios significativos en el código base, lo que permite a las organizaciones hacer crecer sus sistemas basados en COBOL, junto con sus negocios y sin reescrituras frecuentes o migraciones a otros lenguajes.

Tratamiento de datos y archivos

COBOL ofrece capacidades excepcionales de procesamiento de archivos. Puede manejar datos de transacciones complejos a gran escala y admitir múltiples métodos de acceso a archivos, incluido el manejo de archivos de datos secuenciales, indexados y relativos. La solidez de COBOL en la automatización de procesos lo hace ideal para trabajos de procesamiento por lotes, como procesar transacciones financieras, gestionar bases de datos y generar informes.

Interoperabilidad

Los sistemas COBOL de hoy pueden interoperar con otros idiomas y tecnologías (como HTML, JSON, XML e IA generativa2) debido a la introducción de COBOL orientado a objetos e interfaces a nuevos lenguajes de programación. La orientación a objetos también facilita la integración de aplicaciones COBOL con servicios virtuales y en la nube,como Amazon Sitio web Services (AWS), Microsoft Azure e IBM Cloud , bases de datos SQL y otras infraestructuras modernas de DevOps .

Soluciones relacionadas
IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant for Z es un producto asistido por IA generativa creado para acelerar la modernización de aplicaciones de mainframe a un menor costo y con menos riesgo que las alternativas actuales. Este producto proporciona un ciclo de vida integral para desarrolladores de aplicaciones que incluye la detección y el análisis de estas, la refactorización automatizada de código y la conversión de COBOL a Java.

Explorar IBM watsonx Code Assistant for Z

IBM watsonx Code Assistant

IBM watsonx Code Assistant aprovecha la IA generativa para acelerar el desarrollo mientras mantiene los principios de confianza, seguridad y cumplimiento de normas en su núcleo. Los desarrolladores y operadores de TI pueden acelerar los esfuerzos de modernización de aplicaciones y generar automatización para escalar rápidamente los entornos de TI.

Conozca IBM watsonx Code Assistant

IBM COBOL Compiler Family

Los compiladores IBM COBOL admiten sistemas operativos IBM z/OS, IBM AIX y Linux. Obtiene las herramientas para amplificar el desarrollo de su programa y utilizar las aplicaciones existentes. Puede posicionar estratégicamente su proceso de desarrollo de aplicaciones para el mercado de hoy que cambia rápidamente.

Explore IBM Cobol Compilers family
 Recursos El asistente de código para Z lleva GenAI a la modernización de aplicaciones de mainframe

Vea la grabación por pedido con nuestro equipo para conocer cómo la IA está acelerando la modernización de las aplicaciones de mainframe.

Lleve la modernización de aplicaciones y la automatización de TI al siguiente nivel con GenAI

Descubra cómo las plataformas de gestión de la nube híbrida incorporan la automatización generativa infundida por IA para ayudar a las compañías a capitalizar las tecnologías emergentes, obtener ahorros de costos y eficiencia, mejorar el rendimiento de TI y ofrecer y escalar nuevos servicios con más rapidez.

La guía del CEO para la IA generativa

Comprenda la importancia de adoptar la IA generativa y cómo puede beneficiar sus prácticas empresariales, ahora y en el futuro.

Dé el siguiente paso

¿Está listo para acelerar la modernización de las aplicaciones de mainframe, con tecnología de IA generativa? Vea qué puede hacer Watsonx Code Assistant for Z, programando una demostración en vivo, o hable con uno de nuestros especialistas en productos.

Explorar IBM watsonx Code Assistant for Z Reserve una demostración en vivo
Notas de pie de página

1 El mundo depende de un código de 60 años que ya nadie conoce (este se encuentra fuera de ibm.com), PC Mag, 1 de diciembre de 2023

2 IA generativa en generación de código (este enlace se encuentra fuera de ibm.com), Inc42 Media, 24 de marzo de 2024