Language Reference


Issue 19
February 2000

Copyright © 2000 MERANT International Limited. All rights reserved.
This document and the proprietary marks and namesused herein are protected by international law.

MERANT has made every effort to ensure that this manual is correct and accurate, but reserves the right to make changes without notice at its sole discretion at any time.

The software described in this document is supplied under a license and may be used or copied only in accordance with the terms of such license, and in particular any warranty of fitness of MERANT software products for any particular purpose is expressly excluded and in no event will MERANT be liable for any consequential loss.

COBOL is an industry language and is not the property of any company or group of companies, or of any organization or group of organizations.

No warranty, expressed or implied, is made by any contributor or by the CODASYL Programming Language Committee as to the accuracy and functioning of the programming system and language. Moreover, no responsibility is assumed by any contributor, or by the committee, in connection herewith.

The authors and copyright holders of the copyrighted material used herein:

FLOW-MATIC Programming for the Univac® I and II, Data Automation Systems copyrighted 1958,1959, by Sperry Rand Corporation; IBM® Commercial Translator Form No. F28-8013, copyrighted 1959 by IBM®; FACT, DSI27A5260-2760, copyrighted 1960 by Minneapolis-Honeywell

have specifically authorized the use of this material in whole or in part, in the COBOL specifications. Such authorization extends to the reproduction and use of COBOL specifications in programming manuals or similar publications.

Micro Focus® and Animator® are registered trademarks of MERANT International Limited. Micro Focus COBOL, VS COBOL, LEVEL II COBOL, LEVEL II COBOL/ET, MERANT and Professional COBOL are trademarks of Micro Focus Limited.

IBM® is a registered trademark of International Business Machines Corporation. Systems Application Architecture is a trademark of International Business Machines Corporation.

Microsoft® is a registered trademark of Microsoft Corporation.

Data General® is a registered trademark of Data General Corporation.

PANVALET and Librarian are trademarks of Computer Associates. Ryan McFarland® is a registered trademark of Ryan-McFarland Corporation.

UNIX® is a registered trademark licensed exclusively by X/Open Company Limited.

Copyright © 1978-1999 MERANT International Limited
All Rights Reserved


This manual describes the base COBOL language supported by this system for programming microcomputers: this COBOL language is based on the ANSI COBOL standards X3.23-1985 and X3.23a-1989, and is supported by a number of COBOL systems.


This manual is intended for programmers already familiar with the COBOL language.

Related Publications

Other books to which you may need to refer include the Getting Started book and User Guide for your COBOL system, and:

The on-disk document Documentation Update Notes on your issue disks (or in your docs directory after installing) may contain updates to these books.

Using this Manual

This manual describes the support provided by MERANT Micro Focus COBOL products for the base COBOL language. Your Language Reference - Additional Topics should be used as the companion manual to this one. It describes the support provided for additional language features such as DBCS, Report Writer, SQL and Communication. As these features are not commonly used, we envision you using your Language Reference as your first point of reference.

This manual documents the COBOL language as supported by this product. This language was known as VS COBOL in some earlier versions of the product. Where the word COBOL is used without qualification or the term VS COBOL is used in this manual or any associated manuals, they each refer to the language supported by this product. Where other versions of COBOL are referenced, they will always be qualified: for example, VS COBOL II or ANSI'85 COBOL.

Notation in this Manual

Throughout this manual, the following notation is used to describe the format of COBOL statements:

  1. Words printed in capital letters which are underlined must always be present when the functions of which they are a part are used. An error will be reported by your COBOL system if the underlined words are absent or incorrectly spelled. The underlining is not necessary when writing a COBOL source program.

  2. Words printed in capital letters which are not underlined are used in the COBOL source program for readability only. They may be written, or not, as the programmer wishes, but if written, must be correctly spelled.

  3. All words printed in small letters are generic terms representing names which will be devised by the programmer.

  4. When material is enclosed in braces { }, a choice must be made from the options within them.

  5. When material is enclosed in choice indicators { | | }, one or more of the unique options must be specified, but a single option may be specified only once.

  6. When material is enclosed in square brackets [ ] , it is an indication that the material is an option which may be included or omitted as required.

  7. When material is enclosed in boxed, square brackets:


    it is an indication that the material is mandatory for ANSI'74 COBOL (American National Standards Institute publication X3.23-1974) but may be optionally omitted as an extension to that language specification. The symbol adjacent to the box or appearing in the margin indicates the dialects of COBOL in which that material is optional. See rule 11 for further details on dialect features.

  8. In text, the ellipsis (...) shows the omission of a portion of a source program or a sequence. This meaning becomes apparent in context.

    In the General Formats, the ellipsis represents the position at which repetition may occur at the user's option. The portion of the format that may be repeated is determined as follows:

    Given ... in a clause or statement format, scanning right to left, determine the } or ] immediately to the left of the ...; continue scanning right to left and determine the logically matching { or [; the ... applies to the words between the determined pair of delimiters.

  9. This Reference presents the syntax of IBM SAA AD/Cycle COBOL370 (COBOL/370) statements and the rules for writing source programs that are to be compiled by the COBOL/370 compiler.

    The only distinction Micro Focus COBOL makes between COBOL/370 and IBM VS COBOL II is that for the Procedure-Pointer format, the default length is eight bytes rather than four bytes.

  10. This Reference presents the syntax of Multivendor Integration Architecture (MIA) - Technical Requirements for the programming language COBOL. No boxes or dialect symbols for MIA are used in this manual.

  11. The COBOL language accepted by most COBOL compilers includes extensions to the COBOL language defined in American National Standard X3.23-1974. Different compilers allow different extensions to this standard which means that different versions, called `dialects', of COBOL exist. This COBOL product is designed for use in cross-development; it can be used for developing not only programs for use on your COBOL system itself but also programs for use with IBM OS/VS COBOL or IBM VS COBOL II, or programs that conform entirely to ANS X3.23-1974 or its successor ANS X3.23-1985. It allows most extensions that are in the two IBM COBOLs, and all the features from ANS X3.23-1985 and X3.23a-1989.

    To help you keep to the appropriate dialect - that of your target system - this manual shows the dialects in which each feature appears. In the text, features outside ANS X3.23-1974 are in separate paragraphs, with a symbol indicating the dialect at the start of the paragraph. Where a complete section is a separate dialect, the heading of the section is followed by a symbol in a paragraph by itself. A phrases which is part of a separate dialect is separated out into a paragraph on its own, marked as indicated above. In syntax diagrams, features outside ANS X3.23-1974 are enclosed in boxes, with symbols adjacent to the boxes or in the margin.

    The symbols used are as follows:

    dialo.gif These features are extensions to ANS X3.23-1974 that appear in IBM OS/VS COBOL.
    dialv.gif These features are extensions to ANS X3.23-1985 that appear in IBM VS COBOL II.
    dial3.gif These features are extensions to ANS X3.23-1985 that are supported in IBM SAA AD/Cycle COBOL/370, but not in IBM VS COBOL II.
    diala.gif These features are features defined in ANS X3.23-1985 which are not supported under ANS X3.23-1974.
    dialx.gif These features are extensions to ANS X3.23-1985 that appear in the X/Open CAE Specification, COBOL language (XPG-4).
    dialm.gif These features are extensions to ANS X3.23-1985 that are specific to Micro Focus COBOL.
    dialm.gif These features are features defined in ISO/IEC 1989:2000 which are not supported under ANS X3.23-1985.


    These bubbles reflect support only for a particular syntax and its semantics. You have to use Compiler directives to effect a set of reserved words associated with a particular dialect. See the appendix Reserved Words in this manual and your Compatibility Guide for a list of the reserved words affected by various dialects.

    Thus, for example, if you are developing a program for use on IBM OS/VS COBOL, you can use the unmarked features plus any marked OSVS; while if developing solely for your COBOL environment you can use any feature. If you supply the FLAG Compiler directive when you invoke the system software, your COBOL system software flags any features outside the given dialect. You can also use the FLAGAS Compiler directive to turn flagging messages into error messages.

  12. Some features have different effects in different dialects; you specify a dialect-control directive to select the dialect with which you want compatibility. The boxes around such features are double-ruled.

    Extra reserved words needed by features outside ANS X3.23-1985 are reserved only when the appropriate dialect-control directive is present; this means you can ensure that the only words reserved in the specified dialect are reserved on your target system. If you use only features that need no extra reserved words, and whose effects are the same in all dialects, you need not specify a dialect-control directive.

    The dialect-control directive specifying the ANS X3.23-1985 dialect also causes the few ANS 3.23-1974 features not allowed in ANS X3.23-1985 to be flagged with a warning message.

  13. The phrase "is documentary only" in the text of this manual means that the associated coding is accepted syntactically by your COBOL system software, but is ignored when producing the object program.

  14. The changes for this release are summarized in your Getting Started.

  15. Hexadecimal values are enclosed in quotation marks and preceded by a lowercase x for nonnumeric values and by a lowercase h for numeric values; for example, x"9D".

  16. The Program Definition chapter is structured differently from the rest of this manual, to help you locate information quickly and easily. Information is presented according to the four Divisions of a COBOL program, this being indicated in the thumb tabs. The headers show the Sections, and list the COBOL verbs in alphabetical order.