Inside COBOL #43
by
Shawn Gordon
President
The Kompany

This month I bring to you the resuts of the SIGCOBOL survey. I must say that I’m a little dissappointed that there was only about a 10% return rate, but maybe thats good, I don’t know since I never conduct surveys. Since the survey is interesting, and long enough, for the entire column, I think I will let it speak for itself. Thanks again to SIGCOBOL for all their hard work, I should probably join myself sometime.

During February 1997 approximately 500 SIGCOBOL 1997 Survey forms were distributed to Interex members.

The responses from the 55 surveys returned to date indicate that there is a significant difference of opinion between users. It is interesting to note that 4 extensions (3, 7, 19 and 27) feature prominently in the “difficult to do without” as well as in the “can do without”. This could be an indication that some users are using sophisticated editing tools and therefore are more willing to change to an alternative form, if there is one available. There are still a number of programs using the “EXAMINE” verb which was made obsolete in COBOL 85. Nearly half the respondents (44%) said they were still using this verb and 27% said it would be difficult to change to the new “INSPECT” verb.

The most popular new features in the next COBOL standard are related to Tables and year 2000 dates. Although Object Orientation was only popular with 27% of the respondents they voted an average $14.30 to this feature which was the 2nd
highest average vote.

The first part of the survey detailed the HP COBOL II extensions to the current standard and asked what items are being used in COBOL programs and how important they are to the respondent. Rank A means “I Must have this extension in the
future”. Rank B means “This is a useful feature and it would be a lot of work to change to an alternate form”. Rank C means “This is a useful feature but it would not be a lot of work to change to an alternate form”. Rank D means “This
is not necessary and I am willing to change to an alternate form”.

The most popular extensions were (in order of popularity):
18. 87% INTRINSIC phrase in the CALL statement.
23. 86% Special Registers – TALLY, CURRENT-DATE, TIME-OF-DAY, and WHEN-COMPILED.
19. 75% GIVING clause in the CALL statement.
27. 75% Inequality operator “<>” instead of the standard “NOT =”.
7. 73% USAGE COMP-3.
3. 56% $INCLUDE.
25. 56% Octal Literals.
20. 49% Use of “@” or “\” before a parameter in the CALL statement.
10. 45% REMARKS paragraph in the IDENTIFICATION DIVISION.
16. 45% EXCLUSIVE statement.

The most important extensions that respondents felt would be difficult to do without (adding A and B rankings) were:
18. 73% INTRINSIC phrase in the CALL statement.
23. 71% Special Registers – TALLY, CURRENT-DATE, TIME-OF-DAY, and WHEN-COMPILED.
7. 55% USAGE COMP-3.
19. 51% GIVING clause in the CALL statement.
25. 43% Octal Literals.
27. 42% Inequality operator “<>” instead of the standard “NOT =”.
8. 38% Intrinsic Relation Conditions.
3. 36% $INCLUDE.
20. 34% Use of “@” or “\” before a parameter in the CALL statement.
21. 34% ENTRY statement for secondary entry points in subprograms.

The main extensions that respondents felt they could do without (adding C and D rankings) were:
27. 33% Inequality operator “<>” instead of the standard “NOT =”.
10. 29% REMARKS paragraph in the IDENTIFICATION DIVISION.
19. 24% GIVING clause in the CALL statement.
3. 20% $INCLUDE.
26. 20% Interchangeability of single and double quotes.
6. 18% NO LIST phrase in the COPY statement.
7. 18% USAGE COMP-3.
14. 18% ACCEPT FREE form of the ACCEPT statement.

The second part of the survey detailed the major new features in the next COBOL standard. The respondents had up to $100 to indicate which new features they considered were the most important. (The table shows the Total $’s spent followed by % of respondents spending any $’s followed by average $’s spent)

The most popular features by $’s spent were:
30. $596 76% $14.20 SORT statement – This may be used to sort a table
11. $439 62% $12.90 Dynamic Tables
8. $392 45% $15.70 Conversion from 2 digit year to 4 digit year. 3 new
functions
1. $282 45% $11.30 ACCEPT statement – enter the four digit year
17. $265 55% $8.80 Initialization of Tables – Initialized to specified values
20. $215 27% $14.30 Object Orientation
22. $209 38% $10.00 POINTER Data Type
28. $187 33% $10.40 Screen Section
16. $178 45% $7.10 In-line Comments
12. $171 44% $7.10 EXIT statement

Two other features were popular with a significant number of respondents but they only received a small amount of $’s:
32. $145 40% $6.70 Subscripting with arithmetic expressions
3. %149 38% $7.10 Bit/Boolean support

Three more features were less popular with the respondents as a whole but received high $’s from their ‘supporters’:
7. $154 22% $12.80 CALL statement RETURNING clause
24. $149 25% $10.60 Record locking control has been added.
14. $56 11% $9.30 Fixed Point Numeric items – Maximum digits increased from 18
to 31.

The following tables show the survey items with the full results on alternate lines below the descriptions. The %figures represent the % of the total (55) respondents who use the extension. The figures in () indicate the top 10 ranking
for that column.

A: HP COBOL II EXTENSIONS
-------------------------
                Respondents      A         B         C         D       A + B C + D
                ------------------------------------------------------------------------
1.  $DEFINE, $PREPROCESSOR.  
                      36%       22%(9)     5%        4%        5%       27% 9%
2.  $IF, $SET.  
                      21%        5%        7%        5%        4%       12% 9%   
3.  $INCLUDE.  
                      56%(6)    25%(6)    11%        7%       13%(3)    36%(8) 20%(4)
4.  $EDIT. 
                       9%        2%        0         2%        5%        2% 7%
5.  $COPYRIGHT, $VERSION.  
                      16%        4%        0         5%        7%        4% 12
6.  NO LIST phrase in the COPY statement.
                      25%        2%        5%       11%        7%        7% 18%(6)
7.  USAGE COMP-3. 
                      73%(5)    33%(3)    22%(2)    13%        5%       55%(3) 18%(6)
8.  Intrinsic Relation Conditions.
                      42%       25%(6)    13%        2%        2%       38%(7) 4%
9.  WITH DUPLICATES phrase in the SELECT statement RECORD KEY clause.
                      40%       18%        6%       16%(3)     0        24% 16%
10. REMARKS paragraph in the IDENTIFICATION DIVISION.
                      45%(9)     2%       14%       14%(5)    15%(1)    16% 29%(2)
11. Abbreviation "ID" for "IDENTIFICATION".
                      18%        2%        3%        2%       11%(4)     5% 13%
12. Ability to have a section name that is not followed by a paragraph name.
                      25%        5%        4%       11%        5%        9% 16%
13. Ability to specify the language in the SORT statement.
                       2%        0         0         2%        0         0 2%
14. ACCEPT FREE form of the ACCEPT statement.
                      38%       11%        9%       13%        5%       20% 18%(6)
15. SEEK statement. 
                      15%        2%        7%        4%        2%        9% 6%
16. EXCLUSIVE statement.
                      45%(9)    18%       11%       13%        3%       29% 16%
17. UN-EXCLUSIVE statement.
                      40%       18%        9%        9%        4%       27% 13%
18. INTRINSIC phrase in the CALL statement.  
                      87%(1)    53%(1)    20%(3)     9%        5%       73%(1) 14%
19. GIVING clause in the CALL statement. 
                      75%(3)    31%(4)    20%(3)    20%(1)     4%       51%(4) 24%(3)
20. Use of "@" or "\" before a parameter in the CALL statement.
                      49%(8)    25%(6)     9%       11%        4%       34%(9) 15%
21. ENTRY statement for secondary entry points in subprograms.
                      38%       22%(9)    12%        2%        2%       34%(9) 4%
22. EXAMINE statement. 
                      44%       16%       11%       13%        4%       27% 17%(9)
23. Special Registers - TALLY, CURRENT-DATE, TIME-OF-DAY, and WHEN-COMPILED.
                      86%(2)    42%(2)    29%(1)    13%        2%       71%(2) 15%
24. Non numeric literals longer than 160 characters. 
                      16%        4%        3%        9%        0         7% 9%
25. Octal Literals.  
                      56%(6)    27%(5)    16%        9%        4%       43%(5)
13%
26. Interchangeability of single and double quotes.
                      44%       13%       11%       16%(3)     4%       24% 20%(4)
27. Inequality operator "<>" instead of the standard "NOT =".
                      75%(3)    22%(9)    20%(3)    18%(2)    15%(1)    42%(6) 33%(1)
28. USE AFTER STANDARD BEGINNING statement to process user labels for files.
                       6%        0         0         4%        2%        0
6%


B: NEW COBOL 97 FEATURES
------------------------
                  Respondents   Votes     Average 
                  -------------------------------
1.  ACCEPT statement - enter the four digit year
                      45%(4)     $282(4)   $11.30(6)
2.  BINARY and Floating Point Data 
                      29%        $108       $6.80
3.  Bit/Boolean support 
                      38%(9)     $149       $7.10
4.  Boolean Functions - 2 new functions BOOLEAN-OF and NUMVAL-B.
                      11%         $36       $6.00
5.  CALL recursively 
                      22%         $65       $5.40
6.  CALL statement - Use Arithmetric expressions and literals as arguments 
                      22%         $62       $5.20
7.  CALL statement RETURNING clause
                      22%        $154      $12.80(5)
8.  Conversion from 2 digit year to 4 digit year. 3 new functions 
                      45%(4)     $392(3)   $15.70(1)
9.  COPY statement - New LEADING and TRAILING phrases 
                      22%         $90       $7.50
10. Dynamic Storage Allocation - New ALLOCATE and FREE statements 
                      24%        $110       $8.50

11. Dynamic Tables 
                      62%(2)     $439(2)   $12.90(4)
12. EXIT statement 
                      44%(7)     $171(10)   $7.10
13. Free-Form reference format 
                      15%         $49       $6.10
14. Fixed Point Numeric items - Maximum digits increased from 18 to 31.
                      11%         $56       $9.30(10)
15. HIGHEST-ALGEBRAIC and LOWEST-ALGEBRAIC Functions 
                       9%         $30       $6.00
16. In-line Comments 
                      45%(4)     $178(9)    $7.10
17. Initialization of Tables - Initialized to specified values, new FILLER phrase 
                      55%(3)     $265(5)    $8.80
18. Internationalization 
                       7%          $25      $6.30
19. 8 new functions - ABS, E, EXP, EXP10, FRACTION-PART, NUMVAL-F, PI, SIGN
                      25%          $97      $6.90
20. Object Orientation 
                      27%         $215(6)  $14.30(2)
21. PERFORM statement - The AFTER phrase is allowed in in-line PERFORMS
                      20%          $62      $5.60
22. POINTER Data Type
                      38%(9)      $209(7)  $10.00(9)
23. RECORD KEY and ALTERNATE RECORD KEY - from more than one component
                      15%          $43      $5.40
24. Record locking control has been added.
                      25%         $149     $10.60(7)
25. REDEFINES clause - Redefinitions may be specified in any order.
                      20%          $48      $4.40
26. Report Writer 
                      16%          $67      $7.40
27. TYPE and TYPEDEF clauses - user defined type
                      11%          $35      $5.80
28. Screen Section 
                      33%         $187(8)  $10.40(8)
29. SELECT clause - dynamic assignment of a file 
                      20%          $57      $5.20
30. SORT statement - This may be used to sort a table
                      76%(1)      $596(1)  $14.20(3)
31. STRING statement - The DELIMITED phrase is now optional
                      35%          $93      $4.90
32. Subscripting with arithmetic expressions 
                      40%(8)      $145      $6.70
33. User Defined Functions 
                      33%         $145      $8.10
34. VALIDATE statement 
                      29%         $115      $7.20
35. The VALUE clause allowed in external data items and in Linkage and File sections
                      24%          $57      $4.40
36. VALUE clause - WHEN SET TO FALSE phrase 
                      13%          $47      $6.70
37. Writing Literals to a File 
                       9%          $23      $4.60
38. Writing without a Record name 
                      13%          $30      $4.30