En este tema, aprenderemos sobre la estructura básica de un programa COBOL. COBOL (Common Business-Oriented Language) es un lenguaje de programación diseñado para aplicaciones de negocios. Un programa COBOL se organiza en divisiones, secciones, párrafos y sentencias. A continuación, desglosaremos cada uno de estos componentes.
Divisiones de un Programa COBOL
Un programa COBOL se divide en cuatro divisiones principales:
- Identification Division
- Environment Division
- Data Division
- Procedure Division
- Identification Division
La Identification Division es la primera división de un programa COBOL. Aquí se especifica el nombre del programa y otra información de identificación.
- Environment Division
La Environment Division describe el entorno en el que se ejecutará el programa. Esta división se divide en dos secciones: Configuration Section y Input-Output Section.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT input-file ASSIGN TO 'input.txt'.
SELECT output-file ASSIGN TO 'output.txt'.
- Data Division
La Data Division se utiliza para definir las estructuras de datos que el programa utilizará. Esta división se divide en varias secciones, como File Section, Working-Storage Section, y Linkage Section.
DATA DIVISION. FILE SECTION. FD input-file. 01 input-record PIC X(100). FD output-file. 01 output-record PIC X(100). WORKING-STORAGE SECTION. 01 ws-variable PIC 9(4) VALUE 0.
- Procedure Division
La Procedure Division contiene el código ejecutable del programa. Aquí es donde se escriben las instrucciones que el programa debe seguir.
PROCEDURE DIVISION.
BEGIN.
OPEN INPUT input-file.
OPEN OUTPUT output-file.
PERFORM UNTIL ws-variable = 10
READ input-file INTO input-record
AT END
MOVE 'EOF' TO input-record
EXIT PERFORM
END-READ
WRITE output-record FROM input-record
ADD 1 TO ws-variable
END-PERFORM.
CLOSE input-file.
CLOSE output-file.
STOP RUN.Ejemplo Completo de un Programa COBOL
A continuación, se muestra un ejemplo completo de un programa COBOL que lee un archivo de entrada y escribe su contenido en un archivo de salida.
IDENTIFICATION DIVISION.
PROGRAM-ID. FileCopy.
AUTHOR. John Doe.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT input-file ASSIGN TO 'input.txt'.
SELECT output-file ASSIGN TO 'output.txt'.
DATA DIVISION.
FILE SECTION.
FD input-file.
01 input-record PIC X(100).
FD output-file.
01 output-record PIC X(100).
WORKING-STORAGE SECTION.
01 ws-variable PIC 9(4) VALUE 0.
PROCEDURE DIVISION.
BEGIN.
OPEN INPUT input-file.
OPEN OUTPUT output-file.
PERFORM UNTIL ws-variable = 10
READ input-file INTO input-record
AT END
MOVE 'EOF' TO input-record
EXIT PERFORM
END-READ
WRITE output-record FROM input-record
ADD 1 TO ws-variable
END-PERFORM.
CLOSE input-file.
CLOSE output-file.
STOP RUN.Ejercicio Práctico
Ejercicio: Escribe un programa COBOL que lea un archivo de entrada llamado students.txt y escriba su contenido en un archivo de salida llamado students_copy.txt. El archivo de entrada contiene nombres de estudiantes, uno por línea.
Solución:
IDENTIFICATION DIVISION.
PROGRAM-ID. StudentCopy.
AUTHOR. Jane Doe.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT student-file ASSIGN TO 'students.txt'.
SELECT student-copy-file ASSIGN TO 'students_copy.txt'.
DATA DIVISION.
FILE SECTION.
FD student-file.
01 student-record PIC X(50).
FD student-copy-file.
01 student-copy-record PIC X(50).
WORKING-STORAGE SECTION.
PROCEDURE DIVISION.
BEGIN.
OPEN INPUT student-file.
OPEN OUTPUT student-copy-file.
PERFORM UNTIL student-record = 'EOF'
READ student-file INTO student-record
AT END
MOVE 'EOF' TO student-record
EXIT PERFORM
END-READ
WRITE student-copy-record FROM student-record
END-PERFORM.
CLOSE student-file.
CLOSE student-copy-file.
STOP RUN.Conclusión
En esta lección, hemos aprendido sobre la estructura básica de un programa COBOL, incluyendo las cuatro divisiones principales: Identification Division, Environment Division, Data Division y Procedure Division. También hemos visto un ejemplo completo y realizado un ejercicio práctico para reforzar los conceptos aprendidos. En el próximo módulo, profundizaremos en la sintaxis básica de COBOL y los tipos de datos.
Curso de Programación COBOL
Módulo 1: Introducción a COBOL
- ¿Qué es COBOL?
- Historia de COBOL
- Configuración del Entorno COBOL
- Estructura Básica de un Programa COBOL
Módulo 2: Sintaxis Básica de COBOL y Tipos de Datos
Módulo 3: Estructuras de Control
Módulo 4: Trabajando con Datos
- Manejo de Archivos en COBOL
- Procesamiento de Archivos Secuenciales
- Procesamiento de Archivos Indexados
- Procesamiento de Archivos Relativos
Módulo 5: Manejo Avanzado de Datos
Módulo 6: Subprogramas y Programación Modular
Módulo 7: Manejo de Errores y Depuración
Módulo 8: COBOL y Bases de Datos
Módulo 9: Temas Avanzados
- COBOL Orientado a Objetos
- COBOL y Servicios Web
- Optimización del Rendimiento
- Mejores Prácticas en Programación COBOL
