Скомпилируйте Cobol 4 с помощью компилятора Cobol 5 - PullRequest
0 голосов
/ 16 января 2019

Мне нужно скомпилировать исходники Cobol в z / OS UNIX с помощью компилятора Cobol 4, но у меня есть только компилятор Cobol 5. Есть ли варианты ограничить Cobol 5 сборкой Cobol 4? Я использую команду cob2, которую я смонтировал на IGY520.HFS PDS моей установки Cobol в z / OS. Я искал в документации IBM, но ничего не нашел.

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Не то, что я знаю.Я вижу, что может быть полезным следующее:

Параметры компилятора CMPR2, FLAGMIG и NOCOMPILE

Параметры COBOL CMPR2, FLAGMIG и NOCOMPILE определяют исходные операторы, которые необходимо преобразовать для компиляциипод предприятием COBOL.Параметры CMPR2 и FLAGMIG недоступны в Enterprise COBOL, но вы можете использовать свои старые компиляторы с этими параметрами, чтобы помечать операторы, которые необходимо изменить для компиляции с Enterprise COBOL.

Опция компилятора FLAGMIG4 Enterprise COBOL> V4.2

Доступна новая опция компилятора FLAGMIG4 с APAR PM93450 для Enterprise COBOL V4.2, которая поможет вам перейти на Enterprise COBOL V5 или V6.Также рекомендуется установить PTF для APAR PI12240, PI26838 и PI58762, поскольку они содержат обновления для опции FLAGMIG4.Опция FLAGMIG4 определяет языковые элементы в программах Enterprise COBOL V4, которые не поддерживаются или по-разному поддерживаются в Enterprise COBOL V5 или V6.Компилятор генерирует диагностическое сообщение с предупреждением для всех таких языковых элементов.

Руководство по миграции на COBOL 6.2

0 голосов
/ 16 января 2019

Нет. Я настоятельно рекомендую вам изучить руководство по миграции и любые ПОДЕЛИТЬСЯ презентации на тему миграции .

Наиболее распространенные проблемы, о которых сообщают, связаны с недопустимыми данными, допускаемыми более старыми компиляторами. Цитата из презентации SHARE Тома Росса, ссылка на которую приведена выше ...

77 A1 PIC X(4) VALUE ’00 0’.  *> x’F0F040F0’, third byte
                              *> has x’4’ for zone bits.
                              *> OK in PIC X, not valid in
                              *> PIC 9 USAGE DISPLAY

77 A2 REDEFINES A1 PIC 9(4).

PROCEDURE DIVISION.    
    IF A2 = ZERO              *> Compiler could do character
      DISPLAY ’ZERO‘          *> or numeric compare
    ELSE
      DISPLAY ’NOT ZERO‘
    END-IF

Будет ли программа отображать "НОЛЬ" или "НЕ НОЛЬ", зависит от опции компилятора, которые вы используете в COBOL V4 и более ранних версиях и в COBOL V6

Также помните о различиях в том, как обрабатываются упакованные данные, см. Этот недавний вопрос .

Параметр компиляции NUMCHECK может помочь вам в этих ситуациях, но имейте в виду, что параметры компиляции не могут обнаружить недопустимые данные во время компиляции, они могут только генерировать код для обнаружения недопустимых данных во время выполнения.

0 голосов
/ 16 января 2019

Программы на COBOL 5 обратно совместимы с COBOL 4 (они могут вызывать друг друга), но COBOL 5 не создает объектные модули COBOL 4. Зачем вам сборник COBOL 4?

...