COBOL 97 Standards Update
By Jeanette Nutsford, SIGCOBOL Co-Chair

The new COBOL 97 standard documentation lists 121 substantive changes to the current COBOL 85 standard. I have selected the items from this list that I believe will be of most interest to HP COBOL II users. The remaining items are mainly enhancements to the Report Writer and clarifications or options to existing statements.
These items will be the subject of the morning session at IPROF for SIGCOBOL to enable attendees to gain knowledge of the possible use of the features and to vote on a prioritization of the items. Some of these items may already be included in the current version of HP COBOL II as HP extensions.

1.	 ACCEPT statement—The capability to access the four digit year is added.
2.	 BINARY and floating point data—Two new representations of numeric data are introduced.
3.	 Bit/Boolean support—The capability of defining bit strings and setting or testing Boolean values is added.
4.	 Boolean functions—Two new functions are added to convert between numeric and Boolean items. BOOLEAN-OF and NUMVAL-B.
5.	 CALL recursively—The capability of calling an active COBOL program has been added.
6.	 CALL statement—Arithmetic expressions and literals may be used as arguments of the CALL statement.
7.	 CALL statement RETURNING clause. This is an optional extension to the CALL statement to provide a single returned value from the called program. It is partially equivalent to the HP COBOL II extension GIVING clause.
8.	 Conversion from two-digit year to four-digit year. Three new functions are added: DATE-TO-YYYYMMDD (convert YYMMDD to YYYYMMDD), DAY-TO-YYYYDDD   (convert Julian date YYDDD to YYYYDDD) and YEAR-TO-YYYY  (Convert YY to YYYY).
9.	 COPY statement—The LEADING and TRAILING phrases of the REPLACING phrase in this statement will allow replacement of partial words to give postfixing and prefixing capabilities.
10.	 Dynamic storage allocation—ALLOCATE and FREE statements are provided for obtaining storage dynamically. The storage is addressed by data pointers.
11.	 Dynamic tables—Tables may be declared with no maximum number of occurrences. The system automatically expands the size of the table when the table is referenced as a receiving item.
12.	 EXIT statement—The ability to immediately exit an in-line PERFORM has been added.
13.	 Free-form reference format—This allows for varying length source lines and permits a program to be written with a minimum of restrictions on the placement of source code on a line.
14.	 Fixed point numeric items—The maximum number of digits has been increased from 18 to 31.
15.	 HIGHEST-ALGEBRAIC and LOWEST-ALGEBRAIC functions—Added to provide the ability to manipulate numeric data similar to the use of HIGH-VALUES and LOW-VALUES without the risk of data incompatibilities.
16.	 In-line comments—In free form mode a comment may be written on any line. It is preceded by the two characters “*>.”
17.	 Initialization of tables—The elements of a table may be initialized to specified values. The FILLER phrase adds the ability to initialize FILLER data.
18.	 Internationalization—Support is provided for using local conventions that depend on language and culture. Features supported are collating sequences, date and time formats, monetary and number formats, character case mappings.
19.	 Intrinsic functions—Eight new functions include ABS (absolute value), E (value of natural base e), EXP (e raised to a power), EXP10 (10 raised to a power), FRACTION-PART (fraction part of a number), NUMVAL-F (numeric value of a string representing a floating-point number), PI (value of Pi) and SIGN (the sign of a number).
20.	 Object-orientation—Support has been added. This feature will be expanded at a later date.
21.	 PERFORM statement—The AFTER phrase is allowed in an in-line PERFORM.
22.	 POINTER data—A new class of pointer data type is introduced to hold data or program addresses.
23.	 RECORD KEY and ALTERNATE RECORD KEY—Keys for indexed files may be made up from more than one component.
24.	 Record locking control has been added.
25.	 REDEFINES clause—Redefinitions may be specified in any order.
26.	 Report Writer—The Report Writer facility is now integrated into the specification, i.e., it is no longer optional.
27.	 TYPE and TYPEDEF clauses—Identify a type declaration which creates a user defined type. The TYPE clause is used to apply this user-defined type to the description of a data item. No storage is allocated for the type declaration.
28.	 Screen Section—The Screen section provides a non-procedural means of declaring screen items that are to appear on a terminal, their position and various attributes.
29.	 SELECT clause—Support for dynamic assignment of a file has been added.
30.	 SORT statement—This may be used to sort a table.
31.	 STRING statement—The DELIMITED phrase is now optional. The default will assume DELIMITED BY SIZE.
32.	 Subscripting with arithmetic expressions—An arithmetic expression may now be used as a subscript.
33.	 User-defined functions—The ability has been added to write functions that are activated in a manner similar to intrinsic functions.
34.	 VALIDATE statement—The new statement VALIDATE has been added to give the ability to perform comprehensive data validation.
35.	 The VALUE clause is now allowed in external data items and in Linkage and File sections. It will be ignored except in execution of the INITIALIZE statement.
36.	 VALUE clause—The WHEN SET TO FALSE phrase allows specification of a FALSE condition value. This value is moved to the associated condition variable when the SET TO FALSE statement is executed.
37.	 Writing literals to a file—A record can be written from a literal using the WRITE or REWRITE statement.
38.	 Writing without a record name—A FILE phrase on the WRITE and REWRITE statements permits writing records from working storage without having a corresponding record description entry in the File Section.
COBOL II Update Nears Release
By Bruce Hobbs, SIGCOBOL Newsletter Editor

Co-Chair Jeanette Nutsford reported that Randy Rotten, HP’s Research and Development Program Manager, has indicated that the COBOL II enhancements discussed at the last IPROF are finally expected to be released late this summer, probably as part of MPE/iX 5.5 Express Release 3. These enhancements include:
•		Support for multiple entry in a main program. This will allow an entry point to be specified in the MPE/iX RUN command.
•		A more friendly diagnostic message will be returned if an attempt is made to compile a source file in QEDIT format when QEDIT has not been completely installed on the system.
•		Use of an Index-Name will be permitted in a DISPLAY statement.
•		In order to cater to some machine-generated COBOL programs and support downsizing from mainframes, the compiler’s internal tables have been enlarged to enable the compilation of larger source programs.
•		A library of COBOL-callable routines has been supplied for common bit operations. Additionally, better documentation and examples of how to use the BITMAPCNV intrinsic are provided.
•		The compiler will now allow the identifier in a CALL statement to be numeric, thus denoting a plabel.

These enhancements come directly from the SIG’s request list for the past two years. 
HP Extensions to COBOL
By Jeanette Nutsford, SIGCOBOL Co-Chair

The following list contains an explanation of the HP extensions in HP COBOL II to the standard COBOL85/89. We are asking you to note the extensions you commonly use on the survey form included with this newsletter and return it to Interex. You will also be asked to rank the items you noted by their importance to you. Type A means, “I must have this extension.” Type B means, “This is a useful feature and it would be a lot of work to change to an alternate form.” Type C means, “This is a useful feature, but it would not be a lot of work to change to an alternate form.” Type D means, “This is not necessary and I am willing to change to an alternate form.” This information will let HP and 3rd party vendors know which extensions are being used. To see what language extensions you are using you will need to recompile one, or more, of your programs with $CONTROL STDWARN. This control value will cause all use of non-standard COBOL to be flagged after the errors/warnings are listed.

HP COBOL II Preprocessor Commands

1.		$DEFINE, $PREPROCESSOR. These enable you to define macros.
2.		$IF, $SET. These enable the code to be conditionally compiled.
3.		$INCLUDE. This enables code from a flat file to be included in the compile with the source code.
4.		$EDIT. This enables the source code to be edited as it is being preprocessed.
5.		$COPYRIGHT, $VERSION. These provide a means of getting copyright and version data into the object file. The program VERSION.PUB.SYS will display this information.

HP COBOL II Language Extensions

6.	NO LIST phrase has been added to the COPY statement.
7.	USAGE COMP-3. This is equivalent to the standard USAGE PACKED-DECIMAL.
8.	Intrinsic relation conditions to test condition codes returned from CALL INTRINSIC statements.
9.	WITH DUPLICATES phrase has been added to the RECORD KEY clause in the SELECT statement.
10.	REMARKS paragraph in the IDENTIFICATION DIVISION.
11.	Abbreviation “ID” for “IDENTIFICATION.”
12.	Ability to have a section name that is not followed by a paragraph name.
13.	Ability to specify the language in the SORT statement.
14.	ACCEPT FREE form of the ACCEPT statement.
15.	SEEK statement. This is now obsolete in the standard and is in HP COBOL II only for compatibility with HP COBOL 68.
16.	EXCLUSIVE statement.
17.	UN-EXCLUSIVE statement.
18.	INTRINSIC phrase in the CALL statement. (To access HP Intrinsic library file SYSINTR.PUB.SYS).
19.	GIVING clause in the CALL statement. (COBOL 97 provides the GIVING clause, but names it RETURNING).
20.	Use of “@” or “\” before a parameter in the CALL statement.
21.	ENTRY statement for secondary entry points in subprograms.
22.	EXAMINE statement. This is now obsolete in the standard and is in HP COBOL II only for compatibility with HP COBOL 68.
23.	Special Registers: TALLY, CURRENT-DATE, TIME-OF-DAY and WHEN-COMPILED.
24.	Non-numeric literals longer than 160 characters. (HP COBOL II’s limit is 255.)
25.	Octal literals. HP recommend the use of the SYMBOLIC CHARACTERS clause in the SPECIAL-NAMES paragraph which was introduced in COBOL 85.
26.	Interchangeability of single and double quotes.
27.	Inequality operator “<>” instead of the standard “NOT =.”
28.	Use of the USE AFTER STANDARD BEGINNING statement to process user labels for files.

The following is a list of HP extensions that will be incorporated into COBOL 97. Please note if you are using any of these extensions.

29.	Random access files.
30.	The USING phrase of the ASSIGN clause.
31.	GOBACK statement.
32.	Index data items in relational conditions.
SIGCOBOL and X3J4
By Jeanette Nutsford, SIGCOBOL Co-Chair

In December 1996, six members of SIGCOBOL spent an exciting week getting involved with the actual development of the new COBOL standard currently called COBOL 97. Ken Nutsford, Bruce Hobbs, Bob Karlin, Michael Watson, Deloy Cole and myself all attended one or more days as observers at the December meeting of the X3J4 standards committee.
The X3J4 standards committee is the COBOL Technical Committee for WG4(Working Group 4— Languages) from ISO (International Standards Organization). ANSI (American National Standards Institute) provides the management for the X3J4 committee so this will be the first COBOL standard developed jointly by ANSI and ISO. Many internationalization issues are being addressed by this standard due to the ISO involvement. This technical committee, which meets every two months, consists of members who pay to be on the committee, occasional guests of members, occasional observers and liaison representatives. The members are mainly from major companies with a designated, sometimes full time, staff member. The current members are Micro Focus—Don Schricker (Chairman); Computer Associates—Jeff Friedman; COBOL Research Group—Lee Unterreiner; EDS—Ray Fisher; Fujitsu Software—Artur Reimann; HP—Mike Acks; Victor Consulting—Barry Tauber; Hitachi Japan—Wataru Takagi; Tandem—Don Nelson; Unisys—John Brieschke; IBM—Ann Wallace. All attendees at the meetings can participate in discussions and must take part in straw votes which meant we had to understand what was being voted on. We were made most welcome and the committee expressed appreciation at having “Real COBOL Users” present to assist with the development of the COBOL syntax and documentation. 
The special Ad Hoc committee, which has been appointed to develop the Object-Oriented syntax, met for 3 days before the 5 day X3J4 meeting. This X3J4 meeting, which was hosted by HP, was the 204th meeting and its primary task was to review the public comments received in response to the first “Committee Draft Standard” which was published in August 1996. All the public comments were discussed and often debated strongly. Some were accepted as is while the rest were either rejected, accepted with comments and changes, or accepted for the next standard. There is still a lot of work to be done as many new features are still being finalized and the quality of the documentation needs a lot of work.
During the week Don Schricker. as X3J4 chairman, and I, as SIGCOBOL Co-Chairman, discussed ways for Interex SIGCOBOL to stay involved with the new COBOL standard development. On the last day, Interex SIGCOBOL was invited to become a “Liaison” member to the committee with myself as the official representative.
This offer was willingly accepted as there will be no costs involved except for a representative's own costs to attend each meeting. I will endeavor to attend some meetings but will need volunteers from SIGCOBOL who are willing to attend (at their own cost) as the representative when I am not available. An observer (or two) will also be welcome at each meeting with the Liaison representative. SIGCOBOL will be expected to participate in the review work to assist the committee and I am interested to hear from anyone who would like to become part of this team or would like to attend any of the meetings. If you are interested, please send an e-mail to me at SIGCOBOL@interex.org. We will be receiving all meeting minutes and documentation from the committee, mainly by e-mail.
The X3J4 meeting schedule for the remainder of 1997 (subject to change) is as follows:

21 - 25 Apr	Durham, NC
23 - 27 Jun	Chicago, IL
25 - 29 Aug	Harrisburg, PA
20 - 24 Oct	San Francisco, CA
 8 - 12 Dec		Las Vegas, NV

The WG4 ISO committee meets twice a year, each time in a different country. The next WG4 meeting will be in March 1997 in Monterey, California. Only country representatives can attend this meeting which will make recommendations to the X3J4 committee for the work required before the final publication of the COBOL 97 standard.
SIGCOBOL's IPROF '97 Agenda
By Jeanette Nutsford, SIGCOBOL Co-Chair

We are planning a very full one day meeting at IPROF 97 for SIGCOBOL. This will be held on Wednesday, March 5th, at the Westin Hotel in Santa Clara. The agenda for the meeting is as follows:

Morning Session (8:30AM - 12:00PM)

The morning session will commence with introductions, including all vendor staff members. Co-Chair Jeanette Nutsford will then present a summary of SIGCOBOL's involvement with the X3J4 committee. The rest of the session will be devoted to the presentation and discussion of the new features in COBOL 97.

Afternoon Session (4:30PM - 7:30PM)

Since the focus of the IPROF this year is on HP3000 MPE/iX users, vendors have been advised that their presentations should concentrate more on their MPE/iX version than their UNIX version. New features for NT versions may also be included as they should be of interest to the many MPE users now starting to look at NT as a complimentary platform.

4:30pm Fujitsu (30 minutes)
5:00pm Microfocus (30 minutes)

 5:30pm Short break

 5:40pm HP COBOL II
 6:00pm Discussion of current HP extensions

Note: The HP9000 HP-UX user's technical conference will be held separately in April. If you are interested in starting a UNIX COBOL sub group there please contact any SIGCOBOL officer.

SIGCOBOL ListServer/E-mail

Last year Interex announced the creation of a SIGCOBOL list server available over the Internet. (See “Subscribing to the SIGCOBOL ListServer” below.) Interex also announced that it would provide most SIGs with an e-mail address. For SIGCOBOL the address is SIGCOBOL@interex.org. All e-mail sent to this address will be forwarded to SIGCOBOL’s Co-Chairmen, Jeanette Nutsford and Frank Kelly.

Subscribing to the SIGCOBOL ListServer

To subscribe to the SIGCOBOL listserver, send an e-mail message to listproc@interex.org. Leave the subject line blank and in the body of your message type: subscribe sigcobol-L firstname lastname.

SIGCOBOL Surveys 

Along with this newsletter you should find a two part survey. The first part requests that you rank the current HP extensions to COBOL by “most commonly used” as well as in terms of their importance to your shop. The second part asks you to prioritize the new COBOL 97 features by the “most desired.”

A Magazine on COBOL?
By Bruce Hobbs, SIGCOBOL Newsletter Editor

Did you know that there is a magazine published every other month that is specifically for people interested in COBOL? It’s called The COBOL Report and it’s available for $39/year from the COBOL Foundation (www.cobol.org). Check it out!

Are you an Interex Member?
Interex membership has many benefits, including voting rights in SIGCOBOL and reduced registration fees for attendance of conferences such as IPROF, InterWorks and HP World. For more information regarding Interex membership privileges, contact Interex at 1 (800) INTEREX (1 800 468-3739).

SIGCOBOL Mission Statement:
“To work with HP to continue to provide COBOL as the language of choice for business solutions into the 21st Century.”

SIGCOBOL Objectives:
• To provide an advocacy role to HP on MPE and HP-UX COBOL issues.
• To work with HP on the next ANSI/ISO COBOL Standard.
• To provide a forum for the exchange of ideas and information on the use of COBOL.

Contact Information
E-Mail: sigcobol@interex.org
Co-Chairman:	Jeanette Nutsford—64 9 3799180
	Phone and FAX—64 9 379 9180
Co-Chairman:	Frank Kelly—(301) 838-7518 
	FAX: (301) 251-1078
Newsletter Editor:	Bruce Hobbs—(818) 570-8028
	FAX: (818) 570-9850