CaLCE -pilot on COBOL Standardization.
In this pilot we standardize several of the guidelines that are currently in use within the various teams of a large maintenance shop.
These guidelines concern (1) the standardization of the syntax (use of scope terminators, consequent use of terminating period, etc), (2) consistent layout, (3) consistent naming conventions and (4) detection of dangerous control-flow.
CaLCE -pilot on the selection of subsystems.
In this pilot we detect two subsystems in a system that consists of a large collection of COBOL source code files.
The business motivation is that the system itself has become redundant, only the two relevant subsystems have to remain in production. The analysis is implemented by the new RSCRIPT technology of Paul Klint
CaLCE -pilot on system modernization.
In this pilot we have investigated how a system can be migrated to a J2EE or .NET platform.
Currently the system is implemented on a proprietary legacy platform, it contains a large number of screen definitions which will have to be implemented as web-pages.
Also the relational database has to be migrated to a modern equivalent, like Oracle.
COBOL Standardization and Grammar Engineering.
Language definitions, like the ISO Standards for COBOL, C and Fortran,
are large documents without a formal structure. The actual structure of the
language (the grammar) may be given in so called Syntax Diagrams or in
(Extended) BNF productions. Additional requirements are given in text,
which has to be taken into account when reading the grammar.
Tool developers (like compiler constructors, but also those who develop source code analysis tools which are to be used in the maintainance of the software systems) base the development of their tools heavily on the grammar.
However, their grammars are formulated in specific grammar formalisms (like YACC) which are used with parser generator technologies like LL, LR or LALR(k).
These parsing technologies do not support the full class of Context Free languages and several changes have to be applied to the grammar.
As a result, the road from the language standard to an applicable grammar is long and error-prone.
As a consequence, the correspondence between the language standard and the final grammar is unclear.
In order to bridge this gap, we have developed a technique which can read a language definition and generates
a browsable, hyperlinked, grammar in EBNF.
(See the paper on Semi-Automatic Grammar Recovery).
It has been applied to, among others, the IBM VSII COBOL Reference Manual.
Currently we are extending this research in the following directions:
Obtain grammars for ISO Standards for COBOL, Fortran and C and the
ECMA standard for C# (grammars in EBNF and in HTML format);
Extend EBNF further such that as much as possible can be formally
expressed in the grammar (and as less as possible has to be defined in
the associated text)
Select or develop a parsing technology that supports the full class of
Context Free languages, such that no changes to the grammar are required;
Develop analyses which detect possible flaws in the design of a grammar
(such as unintended ambiguities);
We hope that our work can help the community of standardization of programming languages to improve the quality of their documents, such that as much as derivates can be generated in an automatic manner.
As we are a member of the COBOL Committee
we will apply our research to COBOL, but we hope that we can contribute to the commitees of the other programming languages as well.