Учебники

COBOL — Настройка среды

Мы настроили среду программирования COBOL онлайн, чтобы вы могли скомпилировать и выполнить все доступные примеры онлайн. Это дает вам уверенность в том, что вы читаете, и позволяет вам проверять программы с различными вариантами. Не стесняйтесь изменять любой пример и выполнять его онлайн.

Попробуйте следующий пример, используя наш онлайн-компилятор, доступный на CodingGround.

Для большинства примеров, приведенных в этом руководстве, вы найдете опцию Try it в разделах кода нашего сайта в верхнем правом углу, которые приведут вас к онлайн-компилятору. Так что просто используйте его и наслаждайтесь обучением.

Существует много бесплатных эмуляторов мэйнфреймов для Windows, которые можно использовать для написания и изучения простых программ на языке COBOL.

Одним из таких эмуляторов является Hercules, который можно легко установить в Windows, выполнив несколько простых шагов, приведенных ниже —

  • Загрузите и установите эмулятор Hercules, который доступен на домашнем сайте Hercules: www.hercules-390.eu.

  • После того, как вы установили пакет на компьютер с Windows, он создаст папку, подобную C: / hercules / mvs / cobol .

  • Запустите командную строку (CMD) и перейдите в каталог C: / hercules / mvs / cobol на CMD.

  • Полное руководство по различным командам для написания и выполнения программ JCL и COBOL можно найти по адресу:

    www.jaymoseley.com/hercules/installmvs/instmvs2.htm

Загрузите и установите эмулятор Hercules, который доступен на домашнем сайте Hercules: www.hercules-390.eu.

После того, как вы установили пакет на компьютер с Windows, он создаст папку, подобную C: / hercules / mvs / cobol .

Запустите командную строку (CMD) и перейдите в каталог C: / hercules / mvs / cobol на CMD.

Полное руководство по различным командам для написания и выполнения программ JCL и COBOL можно найти по адресу:

www.jaymoseley.com/hercules/installmvs/instmvs2.htm

Hercules — это программная реализация с открытым исходным кодом для архитектур мэйнфреймов System / 370 и ESA / 390 в дополнение к новейшей 64-битной архитектуре z / Architecture. Hercules работает под Linux, Windows, Solaris, FreeBSD и Mac OS X.

Пользователь может подключиться к серверу мэйнфреймов несколькими способами, такими как тонкий клиент, фиктивный терминал, система виртуального клиента (VCS) или система виртуального рабочего стола (VDS). Каждому действительному пользователю предоставляется логин для входа в интерфейс Z / OS (TSO / E или ISPF).

Компиляция программ COBOL

Чтобы выполнить программу на языке COBOL в пакетном режиме с использованием JCL, необходимо скомпилировать программу и создать модуль загрузки со всеми подпрограммами. JCL использует модуль загрузки, а не фактическую программу во время выполнения. Загруженные библиотеки объединяются и передаются JCL во время выполнения с использованием JCLLIB или STEPLIB .

Существует множество утилит компилятора мэйнфреймов, доступных для компиляции программы COBOL. Некоторые корпоративные компании используют такие инструменты управления изменениями, как Endevor , который компилирует и сохраняет каждую версию программы. Это полезно для отслеживания изменений, внесенных в программу.

//COMPILE   JOB ,CLASS=6,MSGCLASS=X,NOTIFY=&SYSUID             
//*            
//STEP1     EXEC IGYCRCTL,PARM=RMODE,DYNAM,SSRANGE
//SYSIN     DD DSN=MYDATA.URMI.SOURCES(MYCOBB),DISP=SHR
//SYSLIB    DD DSN=MYDATA.URMI.COPYBOOK(MYCOPY),DISP=SHR
//SYSLMOD   DD DSN=MYDATA.URMI.LOAD(MYCOBB),DISP=SHR
//SYSPRINT  DD SYSOUT=*
//*

IGYCRCTL — это утилита компилятора IBM COBOL. Параметры компилятора передаются с использованием параметра PARM. В приведенном выше примере RMODE указывает компилятору использовать в программе режим относительной адресации. Программа COBOL передается с использованием параметра SYSIN. Тетрадь — это библиотека, используемая программой в SYSLIB.

Выполнение программ COBOL

Ниже приведен пример JCL, где программа MYPROG выполняется с использованием входного файла MYDATA.URMI.INPUT и создает два выходных файла, записанных в спул.

//COBBSTEP  JOB CLASS=6,NOTIFY=&SYSUID
//
//STEP10    EXEC PGM=MYPROG,PARM=ACCT5000
//STEPLIB   DD DSN=MYDATA.URMI.LOADLIB,DISP=SHR
//INPUT1    DD DSN=MYDATA.URMI.INPUT,DISP=SHR
//OUT1      DD SYSOUT=*
//OUT2      DD SYSOUT=*
//SYSIN     DD *
//CUST1     1000
//CUST2     1001
/*

Загрузочный модуль MYPROG находится в MYDATA.URMI.LOADLIB. Важно отметить, что вышеуказанный JCL можно использовать только для модуля COBOL, отличного от DB2.

Выполнение программ COBOL-DB2

Для запуска программы на языке COBOL-DB2 в JCL и программе используется специализированная утилита IBM; Регион DB2 и необходимые параметры передаются в качестве входных данных утилите.

Шаги, выполняемые при запуске программы COBOL-DB2, следующие:

  • Когда программа на языке COBOL-DB2 компилируется, DBRM (модуль запроса базы данных) создается вместе с модулем загрузки. DBRM содержит операторы SQL программ на языке COBOL, синтаксис которых проверен на корректность.

  • DBRM привязан к региону DB2 (среде), в которой будет работать COBOL. Это можно сделать с помощью утилиты IKJEFT01 в JCL.

  • После шага связывания программа COBOL-DB2 запускается с использованием IKJEFT01 (снова) с библиотекой загрузки и библиотекой DBRM в качестве входных данных для JCL.

Когда программа на языке COBOL-DB2 компилируется, DBRM (модуль запроса базы данных) создается вместе с модулем загрузки. DBRM содержит операторы SQL программ на языке COBOL, синтаксис которых проверен на корректность.

DBRM привязан к региону DB2 (среде), в которой будет работать COBOL. Это можно сделать с помощью утилиты IKJEFT01 в JCL.

После шага связывания программа COBOL-DB2 запускается с использованием IKJEFT01 (снова) с библиотекой загрузки и библиотекой DBRM в качестве входных данных для JCL.

//STEP001  EXEC PGM=IKJEFT01
//*
//STEPLIB  DD DSN=MYDATA.URMI.DBRMLIB,DISP=SHR
//*
//input files
//output files
//SYSPRINT DD SYSOUT=*
//SYSABOUT DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//DISPLAY  DD SYSOUT=*
//SYSOUT   DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
   DSN SYSTEM(SSID)
   RUN PROGRAM(MYCOBB) PLAN(PLANNAME) PARM(parameters to cobol program) -
   LIB('MYDATA.URMI.LOADLIB')
   END
/*

В приведенном выше примере MYCOBB — это программа COBOL-DB2, запущенная с использованием IKJEFT01. Обратите внимание, что имя программы, идентификатор подсистемы DB2 (SSID) и имя плана DB2 передаются в операторе SYSTSIN DD. Библиотека DBRM указана в STEPLIB.