Why does COBOL have both SECTION
and PARAGRAPH
?
Can anybody explain why the designers of COBOL created both SECTION
s and PARAGRAPH
s? These have been around since the initial release of COBOL so I suspect the real reason for their existence has long since gone away (similar to things like NEXT SENTENCE
which are still in the language specification for backward compatibility but no longer required since the introduction of explicit scope terminators).
My guess is that SECTION
may have been introduced to support program overlays. SECTION
has an optional PRIORITY number associated with it to identify the program overlay it is part of. However, most modern implementations of COBOL ignore or have dropped PRIORITY numbers (and overlays).
Currently, I see that SECTION
s are still required in the DECLARATIVE
part of the PROCEDURE DIVISION
, but can find no justification for this. I see no semantic difference between SECTION
and PARAGRAPH
other than PARAGRAPH
is subordinate to SECTION
.
Some COBOL shops ban the use of SECTION
in favour of PARAGRAPH
(seems common in North America). Others ban PARAGRAPH
in favour of SECTION
(seems common in Europe). Still others have guidelines as to when each is appropriate. All of this seems highly arbitrary to me - which begs the question: Why were they put into the language specification in the first place? And, do they have any relevance today?
If you answer this question, it would be great if you could also point to a reference to support your answer.
Thanks