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