| Altre pagine: | 1] Sintassi Cobol | 3] Struttura e organizzazione dei file | ||
|---|---|---|---|---|
| 2] Poche righe non bastano | 4] Accesso ai file Cobol |
La sintassi di Cobol
Vi sarà sicuramente capitato di dover mettere il naso in qualche programma scritto in un linguaggio a voi sconosciuto per scoprirne le funzioni o il motivo di un messaggio di errore.
A volte è una impresa ardua e non si ha ne la voglia ne il tempo di mettersi a sfogliare manuali.
In queste pagine vorrei facilitare questo compito illustrando in modo semplice e conciso la struttura e i comandi principali del linguaggio Cobol.
Organizzazione del programma
Il linguaggio COBOL è di facile interpretazione poichè le istruzioni sono basate su parole o frasi della lingua inglese.
Caratteristica fondamentale dei programmi scritti in COBOL è la struttura sempre formata da
quattro divisioni (DIVISION) divise a loro volta in sezioni (SECTION), che debbono sempre essere collocate nel seguente ordine:
Le DIVISION del programma
IDENTIFICATION DIVISION.
Che contiene i dati identificativi del programma come nome, autore, data, scopo del programma e commenti vari.
ENVIRONMENT DIVISION.
Che contiene i dati relativi alle macchine su cui è stato sviluppato e su cui girerà il programma.
Le periferiche utilizzate quali ad esempio dischi, stampanti.
I file con la loro organizzazione, le chiavi di accesso, il modo di accesso, il nome fisico, la locazione.
DATA DIVISION.
Che contiene la struttura dei dati (che è organizzata in modo gerarchico).
In particolare la struttura dei record di singoli file.
I campi (costanti, variabili, tabelle) utilizzati nel programma.
PROCEDURE DIVISION.
Che contiene le istruzioni vere e proprie.
Personalmente ritengo che questa sia la parte del programma di più facile interpretazione
a condizione che il programma sia ben strutturato.
Un programmi realizzato nel modo spaghetti può essere un rompicapo anche per un buon conoscitore di Cobol.
Le SECTION del programma
Mi limiterò ad indicare le più utilizzate o obbligatorie.
Nella ENVIRONMENT DIVISION.
Troviamo la CONFIGURATION SECTION dove viene indicato il computer su cui è stato compilato il programma e su quello su quale dovrà girare.
Nella stessa divisione troviamo pure la INPUT-OUTPUT SECTION.
in cui in FILE-CONTROL. vengono definite le periferiche.
Nella DATA DIVISION.
Troviamo la FILE SECTION. dove viene specificato il tracciato record dei singoli file.
Nella stessa divisione troviamo pure la WORKING-STORAGE SECTION.
in cui vengono definiti tutti i campi che verranno utilizzati nel programma.
La struttura del linguaggio
Il programma sorgente COBOL è costruito con stringhe di caratteri e separatori.
Le stringhe di caratteri possono essere istruzioni (comandi) o nomi di campi (costanti, nomi di file) e parole riservate di Cobol.
I separatori comunemente usati sono lo spazio, la virgola, il punto e virgola, le parentesi, il doppi punti, i doppi apici.
Le regole sotto non si applicano al contenuto delle costanti e ai commenti.
Ogni istruzione termina con un punto.
La virgola ed il punto e virgola sono di carattere indicativo o di separazione (tranne nella definizione dei campi).
L’ uso del trattino basso ( _ ) non è ammesso.
Le parentesi tonde vanno usate in coppia servono per delimitare indici, espressioni aritmetiche o condizioni.
Le doppie apici vanno usate in coppie e servono per delimitare costanti alfanumeriche.
La codifica del programma
Il programma cobol è costituito da un file di testo a 80 colonne.
Le colonne sono suddivise secondo questo schema:
| Colonna | Utilizzo |
|---|---|
| 1...6 | Le prime sei colonne servono a indicare un numero di sequenza delle righe. |
| 7 | La settima colonna serve a inserire un simbolo indicatore quale: * Per specificare che si tratta di un commento. - Per specificare che si tratta di una continuazione di stringhe. / In fase di compilazione forza un salto pagina. |
| 8...11 | Rappresenta la colonna «A» dove iniziano le dichiarazioni più importanti e le label. |
| 12...72 | Rappresenta la colonna «B» dove si trovano le direttive, in pratica i comandi. |
| 73...80 | Eventuale etichetta o riferimento (di solito metto la data della modifica) |

Pagina successiva ![]() |




