Poche righe non bastano

Navigando in rete si possono trovare siti che, per dare una idea della struttura di un programma scritto in Cobol, utilizzano un esempio che potrei definire classico.
Si tratta di Helloworld realizzato con poche righe di codice.


Il programma, semplicissimo, non fa nient’altro che stampare sul video questa scritta ed é stato ripreso nella didattica di molti altri linguaggi come primo esempio di introduzione al linguaggio in esame, diventando un vero classico: molto spesso, un programmatore che vuole imparare un nuovo linguaggio, inizia i suoi esercizi provando a scrivere un programma che stampi a video "Hello World!" in quel linguaggio.

Da questo esempio si potrebbe dedurre che bastano poche righe di codice per realizzare un programma Cobol, ma in pratica non è proprio così.

Programmare in Cobol vuol dire scrivere righe e righe di codice.

Dalla mia esperienza posso dire che:

    Bullet Il codice sorgente di un "programmino" è composto da 800 - 1500 righe.

    Bullet Il codice sorgente di un "programma normale" contiene fino a 3000 righe.

    Bullet Il codice sorgente di un "programma grande" può raggiungere comodamente le 10 - 15 mila righe.


Vai a inizio pagina

Lo stile

Se analizziamo il codice sorgente di un programma Cobol scritto da chi ha appreso Cobol prima del 1985 - 1986 ossia con la versione Cobol-75, e uno scritto da chi ha iniziato direttamente dalla versione Cobol-85 possiamo notare una sostanziale differenza di stile.

Nel primo vengono utilizzati i comandi GO TO e PERFORM THRU, mentre nel secondo questi comandi sono totalmente assenti.
Il motivo può essere ricercato nel fatto che il comando PERFORM in Cobol-75 offriva delle possibilità limitate in cui non erano previste le varianti WITH TEST AFTER/BEFORE.

Personalmente utilizzo, senza problemi di sorta, il primo stile di programmazione utilizzando, laddove necessita, la controversa istruzione GO TO.

Go non ammesso Per taluni il comando GO TO non va assolutamente utilizzato, anzi andrebbe bandito dal linguaggio Cobol.
Al suo posto dovrebbe essere utilizzato il comando PERFORM solo nella forma senza la variante THRU.

Penso che sia meglio utilizzare un semplice GO TO piuttosto che cercare di ottenere lo stesso risultato con PERFORM nei formati WITH TEST AFTER/BEFORE combinato con UNTIL e magari anche dei FLAG di controllo di flusso.


Inoltre non bisogna dimenticare che Cobol appartiene alla classe dei linguaggi di programmazione imperativi.

Un programma ben strutturato e perciò ben leggibile si può ottenere, a mio avviso, anche utilizzando in modo corretto e non sconsiderato il comando GO rispettando però delle regole ben precise per evitare di ottenere dei programmi stile spaghetti.

Dal punto di vista della funzionalità i due stili non portano a differenze degne di nota, anche se GO TO rispetto a PERFORM dovrebbe risultare più performante poichè non impegna lo stack pointer.

Ritengo importante che nell’ ambito di una applicazione, rispettivamente azienda, tutti i programmi siano realizzati nello stesso stile e specialmente ben documentati.

Per fare un esempio ho utilizzato un programma realizzato da un mio collega nei primi giorni del corso Cobol svolto nel mese di ottobre 2006 presso EasiRun Europa e ho cercato di riscriverlo secondo il mio stile.
I commenti sono volutamente stati ridotti al minimo.



La codifica secondo il mio stile:


Vai a inizio pagina

La codifica nello stile del mio collega:






Come prelevare questi codici

Pagina precedente Pagina precedente Pagina successiva  Pagina successiva