Я наткнулся на часть программы на cobol, которая запутала меня, this - страница, содержащая код, она пытается продемонстрировать, насколько плох ALTER, но в то же время я не понимаю, как проходит программа.
PERFORM 2100-PROCESS-RECORD THRU 2199-EXIT.
...
2100-PROCESS-RECORD.
GO TO 2110-PROCESS-HEADER.
*
2110-PROCESS-HEADER.
* code to process a file header
ALTER 2100-PROCESS-RECORD TO 2120-PROCESS-DETAIL.
GO TO 2199-EXIT.
*
2120-PROCESS-DETAIL.
* code to process a detail record
GO TO 2199-EXIT.
...
*
2199-EXIT.
EXIT.
На мой взгляд, поток выглядит так:
PERFORM 2100-PROCESS-RECORD THRU 2199-EXIT.
...
2100-PROCESS-RECORD.
GO TO 2110-PROCESS-HEADER.
*
2110-PROCESS-HEADER.
* code to process a file header
ALTER 2100-PROCESS-RECORD TO 2120-PROCESS-DETAIL.
GO TO 2199-EXIT.
2199-EXIT.
EXIT.
Если ALTER должен изменить пункт назначения GO-TO, как это может быть полезно, если GO- ТО уже выполнено и программа закрыта?