21 COBOL Selected Questions
21 COBOL Selected Questions

Q1. What are the differences between COBOL and COBOL II?

A1. There are at least five differences: COBOL II supports structured programming by using in line PERFORMs and explicit scope terminators, it introduces new features (EVALUATE, SET .. TO TRUE, CALL .. BY CONTEXT, etc), it permits programs to be loaded and addressed above the 16 megabyte line, it does not support many old features (READY TRACE, REPORT-WRITER, ISAM, etc.), and it offers enhanced CICS support.

Q2. What is an explicit scope terminator?

A2. A scope terminator brackets its preceding verb, eg. IF .. END-IF, so that all statements between the verb and its scope terminator are grouped together. Other common COBOL II verbs are READ, PERFORM, EVALUATE, SEARCH and STRING.

Q3. What is an in line PERFORM? When would you use it? Anything else to say about it?

A3. The PERFORM and END-PERFORM statements bracket all COBOL II statements between them. The COBOL equivalent is to PERFORM or PERFORM THRU a paragraph. In line PERFORMs work as long as there are no internal GO TOs, not even to an exit. The in line PERFORM for readability should not exceed a page length – often it will reference other PERFORM paragraphs.

Q4. What is the difference between NEXT SENTENCE and CONTINUE?

A4. NEXT SENTENCE gives control to the verb following the next period. CONTINUE gives control to the next verb after the explicit scope terminator. (This is not one of COBOL II’s finer implementations). It’s safest to use CONTINUE rather than NEXT SENTENCE in COBOL II.

Q5. What COBOL construct is the COBOL II EVALUATE meant to replace?

A5. EVALUATE can be used in place of the nested IF THEN ELSE statements.

Q6. What is the significance of ‘above the line‘ and ‘below the line‘?

A6. Before IBM introduced MVS/XA architecture in the 1980’s a program’s virtual storage was limited to 16 megs. Programs compiled with a 24 bit mode can only address 16 Mb of space, as though they were kept under an imaginary storage line. With COBOL II a program compiled with a 31 bit mode can be ‘above the 16 Mb line. (This ‘below the line‘, ‘above the line‘ imagery confuses most mainframe programmers, who tend to be a literal minded group.)

Q7. What was removed from COBOL in the COBOL II implementation?


Q8. Explain call by context by comparing it to other calls.

A8. The parameters passed in a call by context are protected from modification by the called program. In a normal call they are able to be modified.

Q9. What is the linkage section?

A9. The linkage section is part of a called program that ‘links’ or maps to data items in the calling program’s working storage. It is the part of the called program where these share items are defined.

Q10. What is the difference between a subscript and an index in a table definition?

A10. A subscript is a working storage data definition item, typically a PIC (999) where a value must be moved to the subscript and then incremented or decremented by ADD TO and SUBTRACT FROM statements. An index is a register item that exists outside the program’s working storage. You SET an index to a value and SET it UP BY value and DOWN BY value.

Read –Page two Questions Here