Cobol wurde Mitte der 50er Jahre entwickelt. Wie der vollständige Name andeutet, wurde es für die geschäftliche Programmierung entwickelt, da es sich um eine für geschäftliche Zwecke relevantere Sprache als die bestehenden "wissenschaftlichen" oder "technischen" Sprachen handelt (es gab sowieso sehr wenige "Sprachen" und "Maschinencode") natürlich zu einer bestimmten Architektur (ich habe fast "speziellen Chip" gesagt, bevor ich an Vakuumröhren dachte), die bei einigen Maschinen durch physische Schalter/Zifferblätter eingestellt werden müssen) und wenn Sie Glück haben mit einem "Assembler". Cobol war für seinen Zweck sehr fortschrittlich.
Die Absicht war für Programme, die in Cobol geschrieben wurden, viel mehr wie Englisch zu sein als nur eine Reihe von "Codes", die etwas für die Initiierten bedeuten.
Wenn Sie sich die Nomenklatur in Bezug auf die Sprache ansehen - Absatz, Satz, Verb, Klausel - folgt sie bewusst den Mustern, die der englischen Sprache zugeschrieben werden.
SECTION passt nicht so gut, bis Sie die Dinge auf ein formelles Geschäftsdokument beziehen.
Beide Abschnitte und Absätze erscheinen auch außerhalb der PROCEDURE DIVISION. Wie im geschriebenen Englisch können Absätze selbstständig existieren oder Teil eines ABSCHNITTES sein.
Sektionen können eine Prioritätsnummer haben, die sich auf die "Segmentierungsfunktion" bezieht. Dies beinhaltete das "Überlagern" von SECTIONs, um eine primitive Speicherverwaltung zu ermöglichen. Dies ist ein "Computer-Featuer" und kein englischsprachiger :-) Die "Segmentierungsfunktion" hat etwas von einem verbleibenden Effekt, aber ich habe es nie wirklich benutzt gesehen.
Ohne DECLARATIVES (die ich nicht verwende, und habe gerade bemerkt, dass das Handbuch unklar zu sein), dann ist es "Wahl", ob Sektionen oder Absätze für PERFORM verwendet werden.
Wenn GO TO verwendet wird, kann rational "Äquivalenz" mit PERFORM ... TRHU ... erreicht werden. Wenn nicht, und es gibt keine unnötige Verwendung von PERFORM ... THRU ..., dann gibt es Gleichwertigkeit bereits.
Vergleiche mit "strukturiertem" Code und modernen Sprachen sind "Geschichte rückwärts lesen" oder nur eine bestimmte "Praxis" umreißen. Von dem Ruf, den "Spaghetti-Code" und ALTER ... bis zu ... erreichen, mag es gut sein, dass es 20 Jahre lang üblich war, nicht viel mit PERFORM zu tun, außer man brauchte das "Speichermanagement", aber ich habe keine Referenzen oder Kenntnisse, um dies zu untermauern.
SECTIONs erlauben doppelte Absatznamen, ansonsten müssen Absatznamen eindeutig sein.
Ich kann nicht die ganze Zeit einen bestimmten Finger auf den anderen legen.
Wenn ich GO TO verwende, würde ich SECTIONs verwenden.Wenn nicht, Absätze. Mit DECLARATIVES würde ich SECTIONs verwenden. Bei Verwendung von SECTIONs würde ich PROCEDURE DIVISION mit einem SECTION starten, um eine Diagnosemeldung zu vermeiden.
Lokale Standards können diktieren, aber nicht unbedingt auf einer "modernen" (oder sogar "rationalen") Grundlage. Es ist vieles "bekannt", aber nach meiner Erfahrung missverstanden zu SEKTIONEN und Paragraphen.
Für die Leistung (wo Massen von Daten verarbeitet werden, und ich meine Massen) dann würde eine PERFORM von einem ABSCHNITT anstatt mehrere einzelne Absätze Verbesserungen sehen. Der Effekt wäre der gleiche mit PERFORM ... THRU ..., aber ich bevorzuge es nicht zu empfehlen. GO TO außerhalb der Reichweite eines PERFORM ist 1) schlecht 2) kann auf "Optimierung" verlieren. Sollte kein Problem sein * außer "wenn ABO ABEND/Exception und keine logische Rückkehr erwarten. Wenn die Verwendung dieser als notwendig" sofort "empfunden wird, dann ist es besser mit einem PERFORM trotz der" Counter-Intuitive "Aspekt (so sie dokumentieren).
Bah, ich sehe, dass Colemanj die gleiche Antwort hatte wie ich. Ich scrollte einfach den ersten Antworteintrag hinunter. Ich kann die Antworten anderer nicht kommentieren, also werde ich das als etwas erweiterte Erklärung dessen, was colemanj sagte, hinterlassen. –
Ich denke, Sie und Colemanj haben die richtige Antwort, aber Ihre Antwort ist deutlicher. Programmsegmentierung war der "State of the art" -Mechanismus zum Verwalten "großer" Programme in einem kleinen Adressraum. Zum Glück virtuellen Speicher machte diese Funktion veraltet (Ich habe lange genug um haben die "Freude" des Schreibens segmentierten Programme erlebt). Alles, was ich sehe, ist ist eine mögliche "Namen Abstand" Verwendung und eine unerklärliche Anforderung, dass Deklaratives Abschnitte im Gegensatz zu Paragraphen verweisen (wie von Tim Sylvester hingewiesen). – NealB