COBOL Compiler Enhancements from Marble Computer

Since August 28, 2009, IBM has introduced six COBOL compilers. Each new compiler has added value over previously released COBOL Compilers. Starting with COBOL Release 5.1, IBM introduced a new compiler technology that differs from all previous COBOL compilers with a focus on generating optimized executable code. 

The chart below summarizes the release and end of service dates for the Enterprise compilers:

Currently

Enterprise Compiler Release Dates and EOS for Compilers Currently in Service:

August 28, 2009

4.2

August 28, 2009 – EOS April 30, 2022

June 21, 2013

5.1

June 21, 2013 – EOS April 30, 2020

February 27, 2015

5.2

Feb 27, 2015 – EOS April 30, 2020

March 18, 2016

6.1

September 8, 2017

6.2

September 6, 2019

6.3

These new Enterprise compilers focus on producing optimized code. The optimized code has produced workflow productivity by 10-20% according to IBM. However, the new compilers have created migration issues the most glaring which is Invalid Data. By using Marble Computer software, Control/DCD, our customers have avoided many of the migration pitfalls.

Enhancements for Past and Present COBOL Compilers from Marble Computer

As of now, only COBOL 6.X compilers are supported. COBOL Version 4.2 will go End of Service on April 30, 2022. Yet, COBOL Version 4.2 is still the most widely used of the Enterprise Compilers.

Knowing that COBOL Version 4.2 was going to go EOS at some point, Marble Computer’s technical staff developed enhancements for the standard COBOL Listing for each COBOL Compiler, past and present.

Referred to as Enhanced Compile Mode within Control/DCD, these enhancements provide significant information regarding the maintenance of an individual COBOL program. The COBOL programmer now has additional narrative information and warnings referred to as the “Special Narrative,” available to them within the COBOL compiler listing.

Enhanced Compile Mode is a feature of Control/DCD that when implemented provides programmers with unique functionality to reduce the cost of COBOL program maintenance.

Functionality Provided to Standard IBM COBOL Compiler Listing

Below is some of the functionality that provides enhancements to the standard IBM COBOL Compiler Listing.

  • Forward Tracing Chart
    Added to show a hierarchical indented chart of Performed Routines (Hierarchical Tracing is unique to Control/DCD.)  
  • Perform Analysis is provided to show:
    – Existing PERFORM Errors that were introduced at some point in development
    – Top-down Structure of PERFORMs for use in COBOL Refactoring to make the COBOL program more maintainable
    This includes showing backward PERFORMs for possibly restructuring program code into only forward PERFORMS
  • Special Narrative
    for each data field. The three features of this Special Narrative are shown here:
  • DATA DIVISION information including PIC, USAGE, VALUE, From-To positions, 01 record information, SECTION, any COPY member information, and a sequence number preceded with an &, to allow an immediate FIND in ISPF that goes directly to this field in the DATA DIVISION in the source code
  • PROCEDURE DIVISION narrative relating to all activity is very different from the older narrative in Control/DCD that was appended on the right side of to the data field in the DATA DIVISION
    – 
    The Performed Routine Name (Paragraph or Section) that the activity belongs to has been added to allow the tracing activity to be separated by Performed Routine Name
    Activity is indented underneath the corresponding Routine Name for understanding what Routine the activity belongs to (see example below)
    – The SORT sequence is changed by necessity to fit this new visual look
    – The sequence number in parentheses at the end of any PROCEDURE DIVISION statement referring to the sequence number in the PROCEDURE DIVISION source code may be used with the addition of an & character, so that an ISPF FIND will go right to this PROCEDURE statement

  • ROUTINE TRACING (Abbreviated Forward Tracing Chart) for each data field
    This abbreviated chart references every Performed Routine Name also referenced in above PROCEDURE DIVISION narrative
    The Routine Names are indented for a visual look at the program’s flow