CONVERTITORI DI LINGUAGGIO
Nel corso di alcune esperienze maturate presso grosse aziende nell'ambito
dei porting di applicativi da sistemi obsoleti a sistemi UNIX, While1 ha
potuto sviluppare alcuni tool per la conversione dei linguaggi e in particolare oggi è
disponibile uno strumento denominato COBCON in grado di convertire dei programmi
scritti utilizzando vecchi linguaggi Cobol (proprietari) in programmi allineati con le
specifiche di uno dei nuovi Cobol (Microfocus, Ryan McFarland, ecc.).
COBCON è oggi
"programmabile": permette, cioè, di modellare la conversione in modo
automatico. È possibile definire, dato il layout dello statement (o anche un gruppo
di statement) in input, come dovrà essere scritto lo statement in output (o il gruppo
di statement).
Utilizzando la tecnica sopra descritta, si possono anche risolvere tutti quei
problemi di conversione legati a problematiche di statement (es: calls) che facevano
riferimento a prestazioni del sistema non più disponibili sul nuovo sistema destinatario.
Infatti, in questo caso è possibile convertire le suddette chiamate con altri statement in
modo automatico, come evidenzia il seguente esempio:
Esempio di conversione statement READ
Sintassi COBOL da convertire:
Formato 1 - Accesso ed Organizzazione Sequenziale
READ file-name [ NEXT ] RECORD [ INTO variabile-1 ]
[ AT END statement-1 [ END-READ ] ]
Formato
2 - Accesso Sequenziale - Organizzazione relative e con chiave
READ file-name [ NEXT | PREVIOUS ] RECORD [ INTO variabile-1 ]
[ WITH LOCK ]
[ AT END statement-1 [ END-READ ] ]
Formato
3 - Accesso Random - Organizzazione Relative
READ file-name RECORD [ INTO variabile-1 ]
[ WITH LOCK ]
[ INVALID KEY statement-1 [ END-READ ] ]
Formato 4 - Accesso Random - Organizzazione con Chiave
READ file-name RECORD [ INTO variabile-1 ]
[ WITH LOCK ]
[ KEY IS nome-chiave ]
[ INVALID KEY statement-1 [ END-READ ] ]
Statement READ convertito:
MOVE file-name TO FILE-LOGIC-NAME
SET mod-read TO TRUE
SET mod-lock TO TRUE
MOVE relative-key TO FILE-NUM-REC
MOVE area-rec TO FILE-AREA-REC
MOVE num-key TO FILE-NUMKEY
SET FILE-READ TO TRUE
CALL FILEHAND USING FILE-PARAM
MOVE FILE-STATUS-COBOL TO file-status
IF FILE-STATUS-OK
MOVE FILE-AREA-REC TO area-rec
MOVE FILE-AREA-REC TO variabile-1
MOVE FILE-NUM-REC TO relative-key
END-IF
IF [ AT-END | INVALID-KEY ]
statement-1
END-IF
Come si può notare, l'esempio cerca di evidenziare come uno o più
statement possano essere considerati per generare una sequenza di nuove istruzioni
utilizzando alcuni dati (evidenziati in grassetto) prelevati dagli statement originali.
Nell'esempio illustrato si può notare che alcuni di questi dati non appartengono
allo statement originale e in questo caso tali informazioni saranno evinte da altri
statement Cobol utilizzando una serie di regole prestabilite dalla sintassi e dalla
semantica della conversione.
COBCON raccoglierà tutte le regole in alcune
tabelle opportunamente codificate al suo interno. Con l'esecuzione di due passate
potrà ottenere il programma convertito, rispettando anche i commenti e le indentazioni
originali.
COBCON è anche idoneo ad eseguire analisi di
complessità o indagini quantitative e qualitative di programmi scritti in Cobol. Infatti,
oltre alla conversione automatica, è possibile programmare lo strumento per ottenere dati
sui programmi e sulla loro complessità relativi, ad esempio, all'uso di specifiche
variabili o chiamate a specifiche funzioni. (es: dove viene utilizzata la data).
Pensando a problematiche oggi molto attuali, come la gestione dell'ANNO
2000 e l'introduzione della moneta unica Europea EURO, l'utilizzo di COBCON
potrebbe essere molto vantaggioso essendo in grado sia di quantificare e qualificare il
volume degli interventi, sia di implementare automaticamente tutte le regole di
conversione come deciso dall'analisi dello specifico applicativo e non solo in
generale (come oggi fanno molti strumenti). COBCON non è un black-box ma un
sistema aperto di facile adattabilità e programmazione.
La versione attuale di COBCON è disponibile su tutti i sistemi UNIX,
Microsoft e anche su OS/2. Nel caso in cui la conversione riguardi un
sistema non contemplato e non in grado di poter ospitare un porting di COBCON, si
potrebbe anche prospettare la soluzione di utilizzare uno dei sistemi elencati come
cross-environment (per esempio si potrebbe sviluppare la conversione su UNIX e
avere come sistema source l'AS/400 e come target l'HOST IBM).
COBCON non viene proposto come prodotto a sé
stante, ma viene sempre fornito congiuntamente ad un'attività di consulenza
specifica. Tale binomio si rende necessario per ottenere il cosiddetto COBCON-FINAL
in un tempo limitato e utilizzando appieno tutte le possibilità offerte dallo strumento.
Tale strategia è sempre consigliabile nel mondo delle conversioni, in quanto
l'obiettivo finale non è quello di dominare lo strumento di conversione, ma di
ottenere un buon risultato sui nuovi sorgenti ottenuti.
Il costo dell'oggetto è di conseguenza determinato da un prezzo base più
un delta dovuto alla parte di adattamento/programmazione relativa al problema specifico;
tale entità dovrà essere quantificata in funzione della complessità del progetto.
Essendo lo strumento disponibile sotto forma di sorgenti, è chiaramente
possibile estenderne le possibilità senza limite, intervenendo, se necessario, sugli algoritmi
del prodotto e inserendo tutte le necessarie nuove regole di conversione per la gestione
di casi particolari, non supportati dalla versione standard.
|