Introducció

COBOL (Common Business-Oriented Language) és un llenguatge de programació dissenyat per a aplicacions de negocis. És conegut per la seva llegibilitat i la seva capacitat per gestionar grans volums de dades. En aquest mòdul, aprendrem com utilitzar COBOL en l'entorn OpenVMS.

Continguts

Instal·lació del Compilador COBOL a OpenVMS

Abans de començar a programar en COBOL, necessitem assegurar-nos que el compilador COBOL està instal·lat al sistema OpenVMS.

Passos per a la Instal·lació

  1. Verificar la Presència del Compilador:

    $ SHOW LOGICAL SYS$SYSTEM
    

    Busca el fitxer COBOL.EXE en el directori del sistema.

  2. Instal·lació del Compilador (si no està present):

    • Contacta amb l'administrador del sistema per obtenir els fitxers d'instal·lació.
    • Executa el procediment d'instal·lació proporcionat.

Estructura Bàsica d'un Programa COBOL

Un programa COBOL típic consta de quatre divisions principals:

  1. IDENTIFICATION DIVISION: Conté informació sobre el programa, com el nom i l'autor.

  2. ENVIRONMENT DIVISION: Defineix l'entorn en què s'executarà el programa, incloent-hi els fitxers d'entrada i sortida.

  3. DATA DIVISION: Declara les variables i les estructures de dades utilitzades en el programa.

  4. PROCEDURE DIVISION: Conté el codi executable del programa.

Exemple de Programa COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. HelloWorld.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION.
    DISPLAY 'Hello, OpenVMS World!'.
    STOP RUN.

Compilació i Execució de Programes COBOL

Compilació

Per compilar un programa COBOL a OpenVMS, utilitza la comanda COBOL seguida del nom del fitxer font:

$ COBOL HelloWorld.COB

Això generarà un fitxer objecte (HelloWorld.OBJ).

Enllaç

Després de compilar, necessitem enllaçar el fitxer objecte per crear un executable:

$ LINK HelloWorld

Execució

Finalment, podem executar el programa resultant:

$ RUN HelloWorld

Gestió de Fitxers amb COBOL

COBOL és especialment potent en la gestió de fitxers. A continuació, es mostra un exemple de com llegir i escriure fitxers en COBOL.

Exemple de Gestió de Fitxers

IDENTIFICATION DIVISION.
PROGRAM-ID. FileExample.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT InputFile ASSIGN TO 'input.txt'
    ORGANIZATION IS LINE SEQUENTIAL.
    SELECT OutputFile ASSIGN TO 'output.txt'
    ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD  InputFile.
01  InputRecord PIC X(100).

FD  OutputFile.
01  OutputRecord PIC X(100).

WORKING-STORAGE SECTION.
01  WS-EOF PIC X VALUE 'N'.

PROCEDURE DIVISION.
    OPEN INPUT InputFile
    OPEN OUTPUT OutputFile

    PERFORM UNTIL WS-EOF = 'Y'
        READ InputFile INTO InputRecord
            AT END
                MOVE 'Y' TO WS-EOF
            NOT AT END
                MOVE InputRecord TO OutputRecord
                WRITE OutputRecord
        END-READ
    END-PERFORM

    CLOSE InputFile
    CLOSE OutputFile
    STOP RUN.

Interfície amb Serveis del Sistema

COBOL a OpenVMS pot interactuar amb serveis del sistema per realitzar tasques avançades com la gestió de processos i la comunicació entre processos.

Exemple d'Interfície amb Serveis del Sistema

IDENTIFICATION DIVISION.
PROGRAM-ID. SystemServiceExample.

ENVIRONMENT DIVISION.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  WS-STATUS PIC S9(9) COMP.

PROCEDURE DIVISION.
    CALL 'LIB$GETJPI' USING BY VALUE JPI$_PID
                             BY REFERENCE WS-STATUS
    IF WS-STATUS = 0
        DISPLAY 'Process ID obtained successfully.'
    ELSE
        DISPLAY 'Error obtaining Process ID.'
    END-IF
    STOP RUN.

Exercicis Pràctics

Exercici 1: Programa Bàsic

Escriu un programa COBOL que mostri el missatge "Benvingut a OpenVMS amb COBOL!".

Exercici 2: Gestió de Fitxers

Crea un programa COBOL que llegeixi un fitxer d'entrada, modifiqui cada línia afegint un prefix "Processed: " i escrigui el resultat en un fitxer de sortida.

Solucions

Solució Exercici 1

IDENTIFICATION DIVISION.
PROGRAM-ID. Welcome.

ENVIRONMENT DIVISION.

DATA DIVISION.

PROCEDURE DIVISION.
    DISPLAY 'Benvingut a OpenVMS amb COBOL!'.
    STOP RUN.

Solució Exercici 2

IDENTIFICATION DIVISION.
PROGRAM-ID. ProcessFile.

ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT InputFile ASSIGN TO 'input.txt'
    ORGANIZATION IS LINE SEQUENTIAL.
    SELECT OutputFile ASSIGN TO 'output.txt'
    ORGANIZATION IS LINE SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD  InputFile.
01  InputRecord PIC X(100).

FD  OutputFile.
01  OutputRecord PIC X(100).

WORKING-STORAGE SECTION.
01  WS-EOF PIC X VALUE 'N'.

PROCEDURE DIVISION.
    OPEN INPUT InputFile
    OPEN OUTPUT OutputFile

    PERFORM UNTIL WS-EOF = 'Y'
        READ InputFile INTO InputRecord
            AT END
                MOVE 'Y' TO WS-EOF
            NOT AT END
                MOVE 'Processed: ' TO OutputRecord
                STRING InputRecord DELIMITED BY SIZE
                       INTO OutputRecord WITH POINTER 11
                WRITE OutputRecord
        END-READ
    END-PERFORM

    CLOSE InputFile
    CLOSE OutputFile
    STOP RUN.

Conclusió

En aquest mòdul, hem après com utilitzar COBOL a l'entorn OpenVMS, des de la instal·lació del compilador fins a la gestió de fitxers i la interfície amb serveis del sistema. Els exercicis pràctics proporcionats ajuden a consolidar els conceptes apresos. En el següent mòdul, explorarem la interfície amb altres llenguatges de programació a OpenVMS.

Curs de Programació OpenVMS

Mòdul 1: Introducció a OpenVMS

Mòdul 2: Comandes Bàsiques d'OpenVMS

Mòdul 3: Sistema de Fitxers d'OpenVMS

Mòdul 4: Scripting amb DCL

Mòdul 5: Gestió del Sistema OpenVMS

Mòdul 6: Xarxes a OpenVMS

Mòdul 7: Programació Avançada a OpenVMS

Mòdul 8: Clúster d'OpenVMS

Mòdul 9: Seguretat a OpenVMS

Mòdul 10: Resolució de Problemes i Optimització

© Copyright 2024. Tots els drets reservats