DEV Community

Cover image for COBOL - instalación y configuración en Ubuntu
Oscar Pincho
Oscar Pincho

Posted on

COBOL - instalación y configuración en Ubuntu

Prerequisitos - instalacion de Homebrew y asdf en ubuntu

Documentación (Oficial?)

Frameworks/Toolkits Populares

(COBOL no usa frameworks modernos; estos son los más conocidos)

  1. GnuCOBOL (OpenCOBOL) — compilador libre estándar.
  2. TinyCOBOL — simple y educativo.
  3. COBOL-IT — comercial, compatible con mainframes.

🛠️ Instalación en Ubuntu

sudo apt update
sudo apt install open-cobol
# o
sudo apt install gnucobol
Enter fullscreen mode Exit fullscreen mode

🍺 Instalación con Homebrew

brew install gnu-cobol
Enter fullscreen mode Exit fullscreen mode

📦 Gestor de paquetes estándar

COBOL no tiene gestor de paquetes oficial (no es un ecosistema modular como Node o PHP).

🔧 Instalación con ASDF

No existe un plugin oficial/asdf para COBOL.


📝▶️ Crear y ejecutar un archivo COBOL

Importante: En COBOL se dejan libres los primeros 7 espacios de cada línea porque originalmente estaban reservados para números de secuencia utilizados en tarjetas perforadas. Estas secuencias permitían ordenar físicamente las tarjetas si se mezclaban. Aunque hoy ya no son necesarios, la estructura histórica del lenguaje se mantiene por compatibilidad, y por eso esos ocho caracteres siguen considerándose una zona especial fuera del código ejecutable.
cobol.es - IBM - Cobol for Linux

Col: 1 2 3 4 5 6 7 8
      |       | | |
      |       | | └──→ Aquí comienza el código
      |       | └────→ Indicador (comentario, continuación…)
      └──────────────→ Zona de secuencia (1–6)

000100*······Programa de ejemplo
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID.··HOLAMUNDO.
000400 ENVIRONMENT DIVISION.
000500 DATA DIVISION.
000600 WORKING-STORAGE SECTION.
000700 01·MENSAJE·PIC·X(20)·VALUE·"HOLA·MUNDO".
000800 PROCEDURE DIVISION.
000900     DISPLAY·MENSAJE.
001000     STOP·RUN.
Enter fullscreen mode Exit fullscreen mode

Nota: existe algo llamado "free format" >>SOURCE FORMAT FREE que en teoría si se le agrega al principio, hace que nos ahorremos los espacios en blanco, pero a mi no me funciono

Crear archivo: touch hola.cob

      *PROGRAMA DE EJEMPLO COBOL PARA VERIFICAR LA INSTALACIÓN DE COBOL
      *IMPORTANTE - Recordatorio: El código COBOL debe comenzar en la COLUMNA 8.
      *Usa '*' en la columna 7 para comentarios.
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.
       PROCEDURE DIVISION.
           DISPLAY "¡COBOL está instalado y funciona!".
           STOP RUN.
Enter fullscreen mode Exit fullscreen mode

mismo archivo con free format: (y sin comentarios)

>>SOURCE FORMAT FREE
IDENTIFICATION DIVISION.
PROGRAM-ID. HOLA.
PROCEDURE DIVISION.
    DISPLAY "Hola Mundo COBOL".
    STOP RUN.
Enter fullscreen mode Exit fullscreen mode

Compilar:

cobc -x hola.cob -o hola
Enter fullscreen mode Exit fullscreen mode

Ejecutar:

./hola
Enter fullscreen mode Exit fullscreen mode

🟦 Ejemplo básico en COBOL

Que Hace:

  1. Lee un archivo de texto.
  2. El archivo tiene dos números por línea (ej: 5 7).
  3. Los multiplica.
  4. Imprime en consola: "el resultado es = X"

Archivo de entrada (datos.txt)

Contenido de ejemplo:

125 745
313 246787
140 4467
Enter fullscreen mode Exit fullscreen mode

Mini Programa COBOL

Crear archivo: multiplicar.cob

      *-------------------------------------------------------------*
      * PROGRAMA PARA LEER DOS VALORES, MULTIPLICARLOS Y MOSTRARLOS *
      *-------------------------------------------------------------*
       IDENTIFICATION DIVISION.
       PROGRAM-ID. MULTIPLICAR.

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT ARCHIVO ASSIGN TO "datos.txt"
               ORGANIZATION IS LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD ARCHIVO.
       01 REGISTRO-LINEA               PIC X(50).

       WORKING-STORAGE SECTION.
       01 NUM1                          PIC 9(9).
       01 NUM2                          PIC 9(9).
       01 RESULTADO                     PIC 9(18).
       01 FIN-FILE                      PIC X VALUE "N".

       PROCEDURE DIVISION.
       MAIN-LOGIC.
           OPEN INPUT ARCHIVO

           PERFORM UNTIL FIN-FILE = "S"
               READ ARCHIVO
                   AT END
                       MOVE "S" TO FIN-FILE
                   NOT AT END
                       PERFORM PROCESAR-LINEA
               END-READ
           END-PERFORM

           CLOSE ARCHIVO
           STOP RUN.

       PROCESAR-LINEA.
           UNSTRING REGISTRO-LINEA
               DELIMITED BY SPACE
               INTO NUM1 NUM2

           COMPUTE RESULTADO = NUM1 * NUM2

           DISPLAY "el resultado es = " RESULTADO.

Enter fullscreen mode Exit fullscreen mode

📝▶️ Cómo compilar y ejecutar

cobc -x multiplicar.cob -o multiplicar
./multiplicar
Enter fullscreen mode Exit fullscreen mode

Salida esperada:

el resultado es = 35
el resultado es = 6
el resultado es = 40
Enter fullscreen mode Exit fullscreen mode

Top comments (1)

Collapse
 
pablojavierjimenez profile image
Javier Jimenez