For purposes of illustration, small subset of some of the more interesting features of the new
standard have been classified into two broad categories and listed below. Category A consists of
features, which in the opinion of some, are "natural" extensions to the existing COBOL 85
Standard, while those in Category B are totally outside the realm of the present COBOL language
capabilities. This artificial classification is helpful to gaining some insight into the significance of
the standard and where it might lead to.
Category A
ACCEPT - a 4 digit year option and some date calculation functions have been provided for.
This comes much too late to have any significant impact upon the so-called Year 2000 crisis.
CALL - enhancements fall into both categories. Category A enhancements include an
expansion of the data types for permissible parameters as well as a couple of old IBM
implemented features, namely the Return Status and Goback.
COMPILER directives - a more rigorous definition of what has traditionally been an
ambiguous area defined by implementers.
EXIT - what one would recognize as a Break statement in C or Pascal. This feature was
necessitated by the COBOL 85 inclusion of in-line PERFORM statements.
INITIALIZE FILLER - this will save thousands of hours of tedious coding for many
programmers over many years. It means that one no longer has to specify VALUE SPACES to
initialize each unnamed data item ( there can be hundreds in a single program).
TABLE SORT - COBOL has had a FILE SORT since the 1968 Standard; finally, a table sort.
Category B
TABLES that are automatically expanded - Dynamic allocation of memory has never been a
feature of the language. When implemented in the past, calls to routines written in other languages
have been utilized. This feature cannot be implemented on several older operating systems where
no such capabilities exist.
BOOLEAN Datatype and Operations - the capacity to define and manipulate bit strings is a
new first for COBOL. It will be interesting to see if and how this would be implemented on an
EBCDIC based mainframe.
CALL - in a word, RECURSION. This is an anathema to any COBOL programmer. In some
mainframe environments, compilation errors result. Where no such compilation error results, there
are several mainframe operating systems which will literally "hang" when attempting to execute
such code.
All of the fundamental building blocks for Object Oriented programming have been written
into the Standard - inheritance, encapsulation, polymorphism, classes, and messages. While the
bulk of this work was completed by the OO COBOL Task Group X3J4.1, there are remaining
issues to be worked out over the coming months. As an example, it is known that as of 18
October 1996, the Object Management Group ( OMG ) had agreed to discuss an RFP for
COBOL Language mapping to a Common Object Request Broker Architecture ( CORBA )
Interface Definition Language.
X3J4 Meeting 203 Minutes