Logo

Uso de Subprogramas en COBOL: CALL, PROCEDURE y más

Introducción

COBOL, acrónimo de "COmmon Business Oriented Language", es un lenguaje de programación desarrollado en la década de 1950, enfocado principalmente en aplicaciones comerciales, financieras y administrativas. A pesar de su antigüedad, COBOL sigue siendo ampliamente utilizado en sistemas heredados que requieren un alto nivel de estabilidad y procesamiento de transacciones.

Uno de los conceptos fundamentales en la programación estructurada es la capacidad de dividir el código en subprogramas o rutinas reutilizables. En COBOL, esto se realiza principalmente a través de las instrucciones CALL y PROCEDURE. Este artículo profundiza en cómo se utilizan estos elementos para modularizar y gestionar el código en COBOL.

Subprogramas en COBOL

CALL: Invocando Subprogramas

El uso del comando CALL en COBOL permite la invocación de un subprograma externo. Un subprograma es un módulo de código independiente que realiza una tarea específica y se puede llamar desde diferentes partes del programa principal o de otros subprogramas.

Sintaxis Básica de CALL

CALL 'nombre-subprograma' USING argumento1 argumento2 ...

Ejemplo de CALL

CALL 'CALCULAR_IMPUESTOS' USING MONTO-BRUTO MONTO-IMPUESTOS.

En este ejemplo, 'CALCULAR_IMPUESTOS' es un subprograma que recibe el MONTO-BRUTO y devuelve el MONTO-IMPUESTOS.

PROCEDURE: Definiendo Subprogramas

La división de un programa COBOL en secciones y párrafos facilita la creación de subprogramas dentro del código. La cláusula PROCEDURE es utilizada para definir el punto de entrada y la estructura lógica del subprograma.

Estructura Típica

PROCEDURE DIVISION.
   PARAGRAFO-UNO.
      ... código ...
   PARAGRAFO-DOS.
      ... código ...

Cada párrafo (PARAGRAFO-UNO, PARAGRAFO-DOS, etc.) actúa como un bloque de código que puede ser invocado desde otras partes del programa utilizando la instrucción PERFORM.

Ejemplo de PROCEDURE

PROCEDURE DIVISION.
   CALCULAR-IMPUESTOS.
       MULTIPLY MONTO-BRUTO BY 0.15 GIVING MONTO-IMPUESTOS.

En este bloque, CALCULAR-IMPUESTOS es un párrafo que puede ser llamado para calcular el 15% de impuestos sobre el MONTO-BRUTO.

Pasando Argumentos con CALL

Los argumentos se pasan por referencia mediante la cláusula USING en el CALL. Esto significa que el subprograma trabaja directamente con las direcciones de memoria de los argumentos, permitiendo que los cambios se reflejen en el programa que hizo la llamada.

Ejemplo de Pasar Argumentos

CALL 'PROCESAR_DATOS' USING CLIENTE-REGISTRO TRANSACCION-REGISTRO.

En este caso, CLIENTE-REGISTRO y TRANSACCION-REGISTRO son argumentos pasados al subprograma PROCESAR_DATOS.

Tipos de Subprogramas

En COBOL, los subprogramas pueden ser:

Beneficios de Usar Subprogramas

Ejemplo Práctico: Subprograma para Validación

Supongamos que tenemos un programa principal que necesita validar números de seguridad social. Podemos crear un subprograma para realizar esta tarea.

Programa Principal

CALL 'VALIDAR_SSN' USING NUMERO-SSN VALIDEZ-SSN.
IF VALIDEZ-SSN IS TRUE
   DISPLAY 'SSN VÁLIDO'
ELSE
   DISPLAY 'SSN INVÁLIDO'.

Subprograma: VALIDAR_SSN

PROCEDURE DIVISION USING NUMERO-SSN VALIDEZ-SSN.
   VALIDAR.
       IF NUMERO-SSN IS NUMERIC
           MOVE TRUE TO VALIDEZ-SSN
       ELSE
           MOVE FALSE TO VALIDEZ-SSN.

En este caso, el subprograma VALIDAR_SSN recibe el número a validar y un indicador de validez, que actualiza según la comprobación realizada.

Conclusión

El uso de subprogramas en COBOL mediante CALL y PROCEDURE es una técnica poderosa para estructurar programas de manera clara, modular y eficiente. Permite una mejor organización del código, facilita el mantenimiento y promueve la reutilización de componentes de software. A pesar de la edad de COBOL, estas prácticas de programación siguen siendo relevantes y aplicables en el desarrollo de software contemporáneo.

Referencias

Para más información sobre la programación en COBOL, puedes consultar las siguientes fuentes:

Estos recursos ofrecen documentación detallada, ejemplos y guías para profundizar en el lenguaje COBOL y sus características.

© Copyright 2024, todos los derechos reservados.