El lenguaje común orientado a los negocios (COBOL) es un lenguaje de programación compilado de alto nivel, similar al inglés, desarrollado específicamente para satisfacer las necesidades de procesamiento de datos empresariales.
COBOL se diseñó pensando en una versatilidad óptima; su verbosidad permite a los programadores utilizar un lenguaje de programación legible y fácil de mantener que puede funcionar en equipos mainframe y sistemas operativos. De hecho, fue uno de los primeros lenguajes de programación normalizados por el Instituto Nacional Estadounidense de Estándares (ANSI) y la Organización Internacional de Normalización (ISO).
Uno de los grandes puntos fuertes de COBOL es su fuerte soporte para cálculos decimales de coma fija de gran precisión, una característica no necesariamente nativa de muchos lenguajes de programación tradicionales. Esta capacidad ayudó a diferenciar a COBOL e impulsar su adopción por parte de muchas instituciones financieras grandes.
Aunque COBOL se considera un sistema heredado, muchas organizaciones gubernamentales y del sector privado siguen utilizándolo para ejecutar aplicaciones financieras, administrativas y empresariales. De hecho, la configuración imperativa, procedimental y (en sus iteraciones más recientes) orientada a objetos de COBOL sirve de base para más del 40 por ciento de todos los sistemas bancarios en línea.1
También es compatible con el 80 % de las transacciones con tarjeta de crédito en persona, gestiona el 95 % de todas las transacciones en cajeros automáticos y alimenta sistemas que generan más de 3000 millones de dólares de comercio cada día1. Gracias a su estabilidad y capacidad de procesamiento superiores, sigue desempeñando un papel fundamental a la hora de ayudar a las empresas a mantener aplicaciones y programas en las arquitecturas existentes.
Boletín del sector
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
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 de la informática, la Dra. Grace Hopper, COBOL se creó como parte de una iniciativa del Departamento de Defensa de EE. UU. que buscaba un lenguaje de programación que pudiera funcionar en distintos sistemas operativos (Linux, Windows, Unix, z/OS, etc.) y 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ó en un principio como una medida provisional, el Departamento de Defensa no tardó en darse cuenta de su utilidad y obligó a los fabricantes de ordenadores a ofrecerlo.
COBOL fue finalmente estandarizado como lenguaje informático en 1968, tras lo cual los programadores de COBOL implementaron varias revisiones y modernizaciones, incluyendo COBOL-61, COBOL-68, COBOL-74 y COBOL-85. COBOL 2002 tenía como objetivo hacer que las aplicaciones COBOL fueran 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. Sin embargo, esta versión sufrió la falta de soporte y la demanda de los usuarios por sus nuevas características.
COBOL 14 introdujo nuevos cambios, incluida la sustitución de los resultados aritméticos portátiles por tipos de datos IEEE 754, y el último estándar, COBOL 2023, ofreció nuevas características adicionales centradas en mejorar la interoperabilidad de COBOL con los sistemas modernos.
El programa COBOL tiene una estructura jerárquica que comprende divisiones, secciones, párrafos, sentencias, verbos y cadenas de caracteres. La naturaleza divisional de un sistema COBOL (que consta de cuatro divisiones) permite una clara separación de las preocupaciones dentro de los programas COBOL.
Las divisiones de COBOL son las siguientes:
La división de identificación es la primera división de un programa COBOL, y es obligatoria. Asigna el programa un nombre y proporciona otra información de identificación como el autor, la fecha escrita y una breve descripción de la finalidad del programa.
Los programas COBOL necesitan un párrafo PROGRAM-ID para funcionar dentro de la identification division. Por ejemplo:
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 utilizará. Se subdivide en dos secciones.
Como era de esperar, la sección de configuración proporciona información sobre la configuración del sistema, incluyendo el equipo y las características del compilador que está utilizando. Sin embargo, debido a los avances en las herramientas del compilador, las secciones de configuración se han convertido en algo obsoleto en los modernos sistemas COBOL, que normalmente puede inferir y adaptarse automáticamente a su entorno.
La sección de entrada y salida especifica los archivos y los dispositivos asociados con los que el programa puede interactuar. Incluye el párrafo FILE-CONTROL (que asigna nombres de archivos dentro del programa a archivos externos) y el párrafo I-O-CONTROL que suele contener información de optimización o secuenciación para las operaciones de entrada-salida.
La división de datos contiene todas las definiciones de variables, archivos y constantes para el programa. Al igual que la división de entorno, la división de datos está subdividida.
La sección de archivo enumera todos los archivos de los que el programa leerá o escribirá. Una entrada de descripción de fichero define cada fichero y describe la estructura de los registros del fichero.
La working-storage section 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 E-S.
Introducido en iteraciones posteriores de COBOL, la local-storage section 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 especialmente útil para los algoritmos recursivos y programas reentrantes.
Por último, la linkage section define los elementos de datos que pasan de un programa a otro.
La procedure division 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 sencillo.
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 con nombre dentro de cada división que contienen uno o más párrafos; sirven como unidades modulares de código que pueden ser llamadas o invocadas dentro del programa.
Los párrafos son conjuntos de sentencias (las unidades ejecutables más pequeñas de un programa COBOL) que cumplen una función concreta y se identifican con un nombre único. Cada declaración o sentencia COBOL dentro de un párrafo comienza con un verbo COBOL (como MOVE, DISPLAY y ADD) que indica cómo se debe ejecutar el código.
La unidad más básica e indivisible del lenguaje COBOL es el carácter. Las cadenas de caracteres son caracteres o secuencias de caracteres contiguos que forman una palabra COBOL, literal o comentario-entrada, delimitada por separadores.
La sintaxis inglesa de COBOL es autodocumentada y casi autoexplicativa, con énfasis en la verbosidad y la legibilidad. Esta característica lo diferencia de otros lenguajes más concisos, como FORTRAN. También admite distintos tipos de datos (numéricos, alfanuméricos y editados, por ejemplo), pero depende de algunos componentes sintácticos adicionales para ejecutar un programa.
Las sentencias son líneas de código COBOL que consisten en una o más declaraciones acotadas por un punto. Las declaraciones, sin embargo, son las instrucciones individuales que orquestan el manejo de archivos y procesos de manejo de datos (mediante el uso de verbos como ADD, START, DISPLAY y WRITE, entre otros).
Por ejemplo, las declaraciones MOVE transfieren datos de una parte a otra de la memoria del sistema; las declaraciones COMPUTE realizan operaciones aritméticas y almacenan los resultados como variables; y las declaraciones READ recuperan registros de ficheros de entrada.
Las cláusulas son componentes de las 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.
Las estructuras de control iterativas y condicionales de COBOL permiten al sistema controlar el flujo de datos.
Las estructuras IF ... ELSE, 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 la declaración PERFORM ejecuta un párrafo o sección un número determinado de veces o hasta que se cumpla una condición, de forma similar a los bucles de otros lenguajes de programación.
COBOL puede facilitar la programación modular mediante el uso de subprogramas, que se implementan desde el programa principal o de otros subprogramas. Mientras que los subprogramas internos se definen dentro del mismo código fuente que el programa de llamada (escrito en la procedure division), los subprogramas externos se compilan por separado y se vinculan según sea necesario.
El proceso de construcción de un programa con COBOL varía dependiendo de las circunstancias de la organización. Sin embargo, suele requerir algunos pasos clave.
Escribir el programa. Si un ingeniero de software quisiera escribir el programa básico "¡Hola, mundo!", por ejemplo, escribiría:
El uso de un entorno de desarrollo integrado (IDE) compatible con COBOL o un editor de texto puede ayudar en el proceso.
Compilar el 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 Compilers Family) traducen los programas a código máquina para que la CPU del ordenador pueda entenderlo y ejecutarlo.
Ejecutar el programa. Una vez compilado el programa, el programador puede ejecutarlo en el sistema de destino. Suponiendo que no haya errores, el programa sigue la lógica de proceso de datos definida en la división de procedimientos para procesar los datos. El proceso de ejecución suele implicar la lectura de datos de archivos y bases de datos, la realización de cálculos o transformaciones de datos y, a continuación, la escritura de los resultados en archivos o bases de datos.
Depurar el programa (si es necesario). Si hay errores o fallos en el programa, los programadores tienen que identificarlos y corregirlos (un proceso llamado depuración). Apoyarse en herramientas y técnicas de depuración puede agilizar este proceso.
Aunque ahora es menos popular que otros lenguajes más modernos (como Python, Java y JavaScript), COBOL fue en su día el lenguaje más utilizado en la programación informática para aplicaciones empresariales. Sin embargo, el desarrollo COBOL sigue siendo una parte funcional y crítica de la infraestructura tecnológica mundial, especialmente para instituciones bancarias, compañías de seguros y organismos gubernamentales.
Como demuestra su poder de permanencia, la programación COBOL puede ofrecer un sinfín de beneficios a las organizaciones que decidan utilizarla (a pesar de la relativa escasez de programadores COBOL 1), entre los que se incluyen:
COBOL es conocido por su rendimiento estable y fiable en aplicaciones de misión crítica. Los sistemas escritos en COBOL suelen tener un alto tiempo de actividad y experimentar pocos fallos, lo que resulta vital para las operaciones ininterrumpidas de instituciones financieras y servicios gubernamentales.
Los desarrolladores pueden escalar aplicaciones COBOL para gestionar cargas de trabajo cada vez mayores sin cambios significativos en la base de código, lo que permite a las organizaciones hacer crecer sus sistemas basados en COBOL junto con sus empresas y sin necesidad de reescribir o migrar con frecuencia a otros lenguajes.
COBOL ofrece capacidades excepcionales de procesamiento de archivos. Puede gestionar datos de transacciones complejas a gran escala y admitir varios métodos de acceso a archivos, incluida la gestión 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 el procesamiento de transacciones financieras, la gestión de bases de datos y la generación de informes.
Los sistemas COBOL actuales pueden interoperar con otros lenguajes y tecnologías como HTML, JSON, XML e IA generativa2. A través de las actualizaciones de modernización, COBOL también es interoperable con servicios virtuales y en la nube, como Amazon Web Services (AWS), Microsoft Azure e IBM® Cloud, bases de datos SQL y otras infraestructuras de DevOps.
IBM Power es una familia de servidores que se basan en procesadores IBM Power y son capaces de ejecutar IBM AIX y Linux.
IBM® Cloud es una plataforma en la nube empresarial diseñada para sectores regulados, que proporciona soluciones híbridas, seguras y preparadas para IA.
Desbloquee nuevas capacidades e impulse la agilidad empresarial con los servicios de consultoría de nube de IBM. Descubra cómo cocrear soluciones, acelerar la transformación digital y optimizar el rendimiento mediante estrategias de nube híbrida y colaboraciones con expertos.