Space announcement This documentation space provides the same content as before, but the organization of the content has changed. The content is now organized based on logical branches instead of legacy book titles. We hope that the new structure will help you quickly find the content that you need.

Cobol processor operation


The COBOL language processor reads compiler listings produced by the COBOL compiler and writes either the compiler listing or an enhanced listing to the DDIO file. You can use the source listing to provide source support during a debugging or diagnostic session by using any of the following products:

  • BMC AMI DevX Abend-AID
  • BMC AMI DevX Abend-AID for CICS
  • BMC AMI DevX Code Debug for CICS
  • BMC AMI DevX Code Debug for TSO
  • BMC AMI DevX Workbench for Eclipse
  • BMC AMI Strobe

The COBOL language processor can run as either a preprocessor or a postprocessor. We recommend that you use the preprocessor instead of the postprocessor. Use the postprocessor only when compiled source listings have been stored in machine-readable format.

Compatibility

CSS is downward compatible with listings created by an earlier release of CSS. CSS is also upward compatible with the next release of CSS, so you can upgrade CSS in the same development environment where the listing was created, while using it in a production environment operating the earlier release of CSS. The release version of CSS installed with the companion product where the listing is being used, for example, BMC AMI DevX Abend-AID or Code Debug, must not be earlier than one version from the release used to create the listing.

The preprocessor provides additional functionality for BMC AMI DevX Code Debug for CICS and BMC AMI DevX Code Debug for TSO. The Preprocessor performs the following functions:

  •  Determines the proper compiler options required to process the listing file.
  •  Automatically invokes the compiler or assembler to compile or assemble your source program.
  •  Writes the listing to the DDIO file. You can also produce an enhanced listing for COBOL programs can be produced.

Preprocessor benefits

  • Better handling of compiler errors: By using the preprocessor, you can avoid the problems of processing a listing with compiler errors. The preprocessor with the CONDDDIO parameter, internally checks the return code from the compiler and does not write a DDIO listing that contains errors. If you set the CONDDDIO parameter to 8, the preprocessor writes the compiler listing to the DDIO file unless the compiler return code exceeds 8. 
  • Capturing of suppressed source code: When You can suppress sections of source code from the compiler listing by specifying the COPY SUPPRESS parameter.
  • Information about a program module is not always available from the compiler listing. The preprocessor gathers information from the compiler listing, and also from SYSIN and SYSLIB.
  • Automated compiler options. With the postprocessor you must specify certain compiler options to process all required sections of the compiler listing. When processing a single source code unit, the preprocessor can automatically pass the required options to the compiler. For more information, see Processing Multiple Compile Units in a Single Execution. For a list of the required compiler options, see COBOL-compiler-options.
  • Simplified JCL: The postprocessor requires that you add a step after the compile step, but the preprocessor requires only minor modifications to your existing compile step.

Dynamically allocated files

The following files are dynamically allocated by the BMC AMI preprocessor. You can override the attributes by specifying a DD in the JCL.

Files Dynamically Allocated by the Preprocessor

DDname

Attributes

CWPWRKn (0-6)

BLKSIZE=19000 SPACE(TRK,(100,80)) UNIT=SYSDA

SORTWK01

BLKSIZE=19000 SPACE(TRK,(100,80)) UNIT=SYSDA

TEMPLIN

BLKSIZE=3200 SPACE(TRK,(200,100)) UNIT=SYSDA RECFM=FB

CWPERRM

SYSOUT=*

CWPWBNV

SYSOUT=*

SYSPRINT

SYSOUT=*

SYSOUT

SYSOUT=*

CWPPRTI

BLKSIZE=16093 SPACE(TRK,(100,200)) UNIT=SYSDA DISP=MOD

CWPPDS2

SPACE (TRK,(100,80,80)) UNIT=SYSDA

Important

  • Compile Diagnostics functionality might get compromised in BMC AMI DevX Code Pipeline if the CWPWBNV DD is specified in the JCL and does not get dynamically allocated.
  • For fixed-length data sets, the BLKSIZE must be a multiple of LRECL.

CWPPRTO is dynamically allocated as a work file (for the preprocessor). The listing is written to SYSPRINT.

Postprocessor

The postprocessor reads listings created from the compiler and gathers information from the source listings, XREF, data maps, and object code sections of the listings. This information is stored in DDIO file members and is used by various BMC AMI companion products. The postprocessor runs as a single step, which can be a separate job from the compile.

Although we generally recommend using the preprocessor to load the compiled listing to the DDIO, you must sometimes use the postprocessor instead, for example, in production environments where the listings might be archived. 

If the programs contain suppressed source code, you must add certain additional control statements to the language processor.

If the programs are compiled with the COBOL compiler option OFFSET and the COBOL compiler option OPT(imize), you must add certain additional control statements to the language processor.

Postprocessor benefits

  • The postprocessor provides an exact match of compiled output listings with the executable load module. This benefit is especially important in production environments where time is critical and where the production program was compiled with a version of the compiler that is no longer available.
  • Using the postprocessor eliminates the risk of copybook or source code changes before recompiling the code because the listing reflects the code that is being run.
  • The processor resources used to process source listings are significantly reduced compared with those used in recompiling the source code, and the language processor can automatically run on the specialty processor (zIIP) when available.

Where to go from here?

For detailed information on using COBOL language processor, see Using-the-COBOL-Language-Processor.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*