Interne Unterprogramme

Ein vernünftiges Programmieren ist ohne interne Unterprogramme eigentlich garnicht möglich. Würde man auf diese Programmiertechnik genzlich verzichten, wäre es wohl möglich, lauffähige Programme zu schreiben - sie wären nur x-mal so lang, kaum mehr lesbar und mit ziemlicher Sicherheit weitaus langsamer.
Interne Unterprogramme werden immer da verwendet, wo Prozesse mehrfach angestoßen werden. Soll beispielsweise in einem Programm eine Berechnung für verschiedene Werte erfolgen, so wird man den Berechnungsalgorythmus in einem internen Unterprogramm erstellen, auf das dann im Laufe des Programms von den verschiedensten Stellen zugegriffen werden kann. Aber auch für nur einmal aufgerufene Bereiche des Programms macht es Sinn, Unterprogramme anzulegen. Hierdurch erhält das Programm einen strukturierten und übersichtlichen Aufbau.
Werden dabei für die Unterprogramme entsprechend aussagekräftige Namen verwendet, ließt sich ein solches Coding beinahe wie ein Text und bleibt auch später durch seinen strukturierten Aufbau gut nachvollziehbar. Um in COBOL interne Unterprogramme und dadurch eine strukturierte Programmierung zu ermöglichen, gibt es die PERFORM-Anweisung.
Ein ähnliches Vorgehen scheint auf den ersten Blick durch Sprünge mit Hilfe der GO TO-Anweisung und den entsprechenden Sprungmarken möglich zu sein. Hiervor sei jedoch ausdrücklich gewarnt, da hierdurch schnell ein sog. 'Spaghetti-Code' entsteht. Will man ein solches Coding analysieren, und zeichnet sich daher auf den Ausdruck des Listings die Wege der GO TO-Anweisungen ein, so wird man schnell verstehen, warum diese Art der Programmierung Spaghetti-Programmierung heißt. Man sollte daher die GO TO-Anweisung also nur da einsetzen, wo ein anderes Vorgehen absolut keinen Sinn macht.

...