Cobol

Cobol
Immagine illustrativa dell'articolo Cobol
Data della prima versione 1959
Sviluppatori Comitato a corto raggio
Ultima versione 2014
Influenzato da FLOW-MATIC , Comtran  (en)
Estensione del file cbl, cob e cpy

Cobol è un linguaggio di programmazione creato nel 1959 (ufficialmente il 18 settembre 1959). Il suo nome è l'acronimo di COmmon Business Oriented Language che rivela la sua originaria vocazione: essere un linguaggio comune per la programmazione di applicazioni aziendali. Oggi è utilizzato principalmente nei settori bancario, assicurativo, grandi amministrazioni.

Storia e specifiche

COBOL è stato inizialmente creato nel 1959 dallo Short Range Committee , uno dei tre comitati proposti in una riunione al Pentagono nel maggio 1959 organizzata da Charles Phillips del Dipartimento della Difesa degli Stati Uniti . Il comitato è stato formato per raccomandare un approccio a breve termine a un linguaggio comune e indipendente dal fornitore per le applicazioni di gestione dell'amministrazione degli Stati Uniti. Era composto da membri che rappresentavano sei produttori di computer e tre agenzie governative. I sei produttori di computer erano Burroughs Corporation , IBM , Minneapolis-Honeywell , RCA , Sperry Rand e Sylvania Electric Products . Le tre agenzie governative erano la US Air Force , il David Taylor Model Basin e il National Standards Institute . Questo comitato era presieduto da un membro della NBS . Al Pentagono sono stati proposti anche comitati a medio e lungo termine. D'altra parte, anche se il primo è stato fondato, non è mai stato operativo e l'ultimo non è mai stato fondato. Infine, è stato formato un sottocomitato del Comitato Short Range con sei membri:

Questo sottocomitato completò le specifiche Cobol alla fine del 1959. Erano largamente ispirati dal linguaggio FLOW-MATIC inventato da Grace Hopper , soprannominata "la madre del linguaggio Cobol", e dal linguaggio COMTRAN di IBM, inventato da Bob Bemer .

Questo linguaggio essendo stato progettato nei primi giorni dell'informatica, la sua relativa complessità scoraggia molti programmatori del nostro tempo, il che gli è valso due interpretazioni ironiche del suo acronimo: Compiles Only because Of Luck ( funziona solo per fortuna ) e Completely Obsolete Business Linguaggio orientato ( gestione linguistica orientata completamente obsoleta ).

Storia degli standard Cobol

Queste specifiche furono approvate dal comitato al completo, poi dal comitato esecutivo ( CODASYL ) nel gennaio 1960 e inviate alla tipografia governativa che le modificò e le stampò come Cobol 60. Il linguaggio fu sviluppato in meno di sei mesi di sviluppo. ed è ancora in uso oggi, dopo diverse revisioni standardizzate da ANSI e ISO , tra cui

Caratteristiche principali

Tutte le variabili e le strutture dati utilizzate sono definite all'inizio del programma, prima della divisione procedurale contenente le istruzioni. Il modo in cui vengono definite le variabili, ovvero gli spazi di immagazzinamento temporaneo, è molto particolare. È una struttura ad albero definita da una serie di righe di codice. Ogni riga inizia con un numero che definisce il livello di annidamento del campo o gruppo di variabili.

Per esempio :

01 NomPrenom. 05 Prenom PIC X(20). 05 Nom PIC X(20).

che definisce una struttura namePrénom contiene i campi First Name e Name di 20 caratteri.

Un altro esempio :

01 CodePostal. 02 Depart PIC 99. 02 Commune PIC 999.

che definisce un codice postale della Francia e che consente di utilizzare il dipartimento senza alcun MOVE.

Come definito nelle specifiche originali, Cobol possedeva già le molte caratteristiche che lo resero di successo: eccellenti capacità di auto-documentazione, metodi convenienti per gestire i file e vari tipi di dati, il cui formato è specificato dalla clausola PICTURE . Come la maggior parte degli altri linguaggi dell'epoca, non consente di definire variabili locali, funzioni ricorsive e allocare la memoria in modo dinamico.

La gestione dei decimali in Cobol (numeri in virgola fissa ), e il controllo degli arrotondamenti e degli sforamenti, evitano i molti problemi che si presenterebbero utilizzando i numeri in virgola mobile per i calcoli finanziari. Sono le sue capacità aritmetiche a virgola fissa , specialmente per l'elaborazione batch dove ha prestazioni eccellenti, che hanno reso Cobol particolarmente popolare per l'elaborazione contabile.

Include anche un generatore di report, definito allo stesso modo delle altre strutture dati. Le funzioni di ordinamento , unione e comunicazione sono integrate . Un modulo opzionale consentiva anche una forma di comunicazione tra processi tramite coda di messaggi .

La decisione iniziale di definire un linguaggio di programmazione vicino al linguaggio naturale (come per FLOW-MATIC) dovrebbe facilitare, se non la programmazione, almeno l' audit dei programmi Cobol da parte di manager non IT. Questa scelta ha prodotto una sintassi complessa (il linguaggio naturale non è semplice), con molte parole riservate e molte opzioni (nemmeno le operazioni di gestione sono semplici) che hanno fatto guadagnare a Cobol una reputazione di verbosità, che non è necessariamente basata sui fatti.

Ad esempio in Cobol l'istruzione

ADD montant TO total-jour total-mois total-annee.

sarebbe espresso, in C o in altre lingue derivate, da

total_jour += montant; total_mois += montant; total_annee += montant;

Come altri linguaggi dell'epoca ( ad esempio Fortran II ), Cobol offriva la possibilità di modificare il codice durante l'esecuzione utilizzando la famosa istruzione ALTER X TO PROCEED TO Y (alter X to go to Y). Questa pericolosa possibilità, che ha trasposto una comune tecnica di programmazione nel linguaggio macchina , è stata eliminata dalle specifiche del linguaggio. Rendendo possibile modificare al volo l'esecuzione di un programma, questo comando ha permesso di sovrascrivere gli ordini GO TO , complicando così la manutenzione.

Le versioni successive dello standard hanno modernizzato il linguaggio, ad esempio aggiungendo strutture di controllo migliorate e supporto per la programmazione a oggetti , mantenendo la massima compatibilità con le versioni precedenti, in modo da evitare di dover modificare l'enorme stock di programmi Cobol in servizio.

Il peso dell'eredità

La lingua Cobol è stata di gran lunga la lingua più utilizzata dagli anni '60 agli anni '80 ed è ancora ampiamente utilizzata nelle grandi aziende, specialmente nelle istituzioni finanziarie che hanno (e stanno ancora sviluppando) numerosi software e applicazioni in Cobol.

Scritte in un'epoca in cui i byte erano costosi e quando l'anno 2000 era ancora lontano, queste applicazioni facevano temere il famoso bug dell'anno 2000 . Spesso, per risparmiare memoria, i reparti IT ei programmatori avevano codificato anni e test annuali in due cifre anziché quattro. Così che la preparazione per la transizione all'anno 2000 ha costato in ultima analisi enormi risorse umane, materiali e finanziarie. Tuttavia, banche, compagnie di assicurazione e altri istituti finanziari gestiscono da molto tempo pratiche per più di dieci, venti o anche trent'anni (prestiti, ad esempio), ma senza tenere sistematicamente conto nella verifica della data della nozione di secolo.

Nel 2005, il gruppo Gartner ha stimato che il 75% dei dati aziendali è stato elaborato dai programmi in Cobol e che il 15% dei nuovi programmi sviluppati sarebbe stato in questa lingua. Tuttavia, a luglio 2017, Cobol è 25 ° nell'indice TIOBE , che misura i linguaggi di programmazione in base alla loro popolarità, con un punteggio dell'1,135%.

Struttura di un programma Cobol

Un programma ha quattro divisioni. Lo standard Cobol-85 rende obbligatorio solo il primo.

  • IDENTIFICATION DIVISION. Contiene informazioni generali sul programma (incluso il nome).
  • ENVIRONMENT DIVISION. Contiene informazioni sull'ambiente (hardware e software) in cui è in esecuzione il programma.
  • DATA DIVISION. Contiene le descrizioni dei dati (variabili, file, parametri e talvolta descrizione della schermata).
  • PROCEDURE DIVISION. Contiene la descrizione dei trattamenti effettuati.

Ogni divisione è composta da "sezioni", costituite da "paragrafi" costituiti da "frasi" che possono essere frasi o clausole obbligatorie. Ogni frase deve terminare con un punto.

Le prime sei colonne di ogni riga del programma sono considerate un'area di commento , anticamente utilizzata per numerare le schede perforate (se il pacchetto cadeva, bastava farle scorrere attraverso uno smistatore per ricostituire la versione corretta del programma). La settima colonna contiene un carattere di controllo: spazio per le righe attive, stella per i commenti , trattino come carattere di continuazione.

L'ottava colonna è l'inizio dei titoli dei paragrafi.

La dodicesima colonna è l'inizio delle istruzioni.

I compilatori Cobol moderni consentono l'uso di un formato libero che non richiede più la connessione.

Programma di esempio ( Hello  !)

Scritto nello stile tipico dei programmi a scheda perforata (anni '60 -'70), con righe numerate

000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. SALUTTOUS. 000300 DATE-WRITTEN. 21/05/05 19:04. 000400 AUTHOR UNKNOWN. 000500 ENVIRONMENT DIVISION. 000600 CONFIGURATION SECTION. 000700 SOURCE-COMPUTER. RM-COBOL. 000800 OBJECT-COMPUTER. RM-COBOL. 000900 001000 DATA DIVISION. 001100 FILE SECTION. 001200 100000 PROCEDURE DIVISION. 100100 100200 DEBUT. 100300 DISPLAY " " LINE 1 POSITION 1 ERASE EOS. 100400 DISPLAY "BONJOUR !" LINE 15 POSITION 10. 100500 STOP RUN.

Nota: ERASE EOS sta per "'Cancella fine schermo'". La riga di comando 100300 ha quindi l'effetto di cancellare lo schermo.

Esempio di formato gratuito

Un'altra versione dello stesso esempio nel formato gratuito Cobol-85:

Identification division. Program-id. Hello. Procedure division. Display "Hello world!" line 15 position 10. Stop run.

Codici di ritorno in fase di esecuzione

Codice di ritorno 203: controlla la posizione dell'ordine di apertura del file.

Appendici

Articoli Correlati

  • Pacbase e TELON sono AGL che generano Cobol.
  • Conferenza CODASYL sul linguaggio DAta SYstems

link esterno

Riferimenti

  1. "  http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=51416  "
  2. (en) www.microfocus.com
  3. http://www.evoliris.be/fr/content/lh%C3%A9ritage-cobol-un-d%C3%A9fi-pour-la-formation-continue
  4. Basato su: JE Sammet. “  La storia antica di Cobol.  ", In ACM SIGPLAN Avvisi , Volume 13, Numero 8 (agosto 1978) Numero speciale: Conferenza sulla storia dei linguaggi di programmazione , pagg. 121-161, 1978. Pubblicato anche in History of Programming Languages , rk: ACM Monograph Series, 1981.
  5. ISO / IEC 1989-2014
  6. "Le banche rimangono fedeli a Cobol, meglio di Java" Le Monde Informatique
  7. (a) William M. Ulrich, "  Ricordi Cobol? Se non lo fai, riacquisti  " , Computerworld , vol.  35, n o  21,21 maggio 2001, p.  30 ( ISSN  0010-4841 , letto online , consultato il 19 febbraio 2018 )
  8. luglio 2017, Indice TIOBE