IT Standards Logo

    The COBOL 9X Standard - Some New Features

    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.

    Object Oriented Programming Extensions

    This represents the most important work done by the committee and the most controversial. Prior to implementing any Object Oriented extensions, the native language capabilities of COBOL must be extended provide for this possibility. For example, the notion of a pointer does not exist in the current or any prior COBOL standard. In order to make object implementation and reference possible, such addressing modes and their associated data constructs must be built into the language.

    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

    Return to Introduction

    Discussion of COBOL 9X Standard