Мы настроили среду программирования 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.