Операционные системы и программное обеспечение на платформе zSeries

         

Средства разработки программ в ISPF/PDF


Наряду с традиционным способом создания приложений на основе пакетных заданий, ISPF/PDF поддерживает два специальных режима разработки, доступных через главное меню: интерактивный (Foreground) и пакетный (Batch). Эти режимы предназначены для компиляции исходных программ и получения объектных модулей для множества поддерживаемых в z/OS языков программирования (ассемблер, Fortran, COBOL, С/С++, PL/I, REXX, DTL и др.). Помимо средств компиляции, здесь доступны также интерактивные отладчики для языков COBOL и Fortran, редакторы связей (Binder и Linkage editor), а также утилита для определения связей между модулями программы (Member Parts List).

Рассмотрим более подробно функцию 4 ISPF/PDF "Интерактивный режим" (Foreground), которая обеспечивает поддержку средств разработки программ в интерактивном режиме [19]. Главная панель функции представлена на рис. 5.62. Пользователь может выбрать интересующую его программу, введя соответствующий номер в командную строку и нажав клавишу ВВОД. Если исходный набор данных упакован и выбранная функция поддерживает работу с упакованными данными (не отмечена звездочкой), предварительно следует установить переключатель Source Data Packed.


Рис. 5.62.  Главная панель функции интерактивного режима (Foreground)

Рассмотрим особенности использования компиляторов в интерактивном режиме на примере HL Assembler. В этом случае на главной панели следует ввести 1, нажать ВВОД и перейти к панели настройки параметров компиляции, представленной на рис. 5.63. Исходный текст программы для выбранного компилятора может быть представлен двумя способами: в виде раздела библиотеки ISPF или как произвольный набор данных (например, как последовательный набор данных).


Рис. 5.63.  Панель настройки параметров ассемблера

Если исходный модуль представлен в виде раздела библиотечного набора данных, существует возможность определить дополнительные исходные библиотеки, в которых могут находиться включаемые фрагменты текста (например, описываемые с помощью директивы INCLUDE).
Имена дополнительных исходных библиотек вводятся в поле Additional input libraries с использованием апострофов:

===" 'ABC.MACROS'

Если имя раздела для библиотечного набора данных не указано, появится панель списка разделов, где следует сделать выбор с помощью строчной команды S. Если исходный набор данных защищен паролем, в поле Password нужно ввести пароль.

Отчет (листинг), сформированный компилятором, будет размещен в наборе данных, имя которого выбирается автоматически в соответствии с шаблоном:

[prefix.]userid.listid.LIST

где prefix - префикс для наборов данных, установленный в пользовательском профиле TSO, userid - идентификатор пользователя, с которым он открыл сеанс работы, listid - имя, заданное пользователем в одноименном поле панели. Если префикс TSO совпадает с идентификатором пользователя, то квалификатор prefix не используется.

Если исходный набор данных является последовательным, то поле List ID обязательно должно быть заполнено. Для раздела библиотечного набора данных значение listid по умолчанию совпадает с именем исходного раздела.

Одно из полей панели предназначено для ввода параметров настройки (опций) используемого компилятора (Assembler Options). Следует обратить внимание, что для любого компилятора две опции считаются установленными по умолчанию:

  • опция OBJECT - требует сохранить объектный код в наборе данных;
  • опция LIST - требует сохранить выходной отчет в наборе данных.


Остальные опции устанавливаются в соответствии с допустимым перечнем, описанным в руководстве по соответствующему компилятору.

После определения всех необходимых параметров следует нажать клавишу ВВОД. Через некоторое время в нижней части экрана появится сообщение:

HIGH LEVEL ASSEMBLER STARTED ***

Требуется вновь нажать клавишу ВВОД.

При выполнении компиляции и ассемблирования автоматически создается сохраняемый объектный модуль. Если исходный модуль определен в виде раздела библиотеки ISPF c именем вида PROJECT.GROUP.TYPE(MEMBER), то объектный код будет записан в раздел MEMBER библиотечного набора данных с именем PROJECT.GROUP.OBJ.


Если исходный модуль задан как произвольный набор данных, объектный модуль будет сформирован в наборе данных такого же типа и с таким же именем, только последний квалификатор имени примет значение OBJ.

Если процедура компиляции завершится нормально, на экране автоматически будет отображен выходной отчет в режиме просмотра BROWSE. После выхода из режима просмотра пользователь может произвести обработку отчета с помощью утилиты печати (Foreground Print Options). Если же процедура компиляции завершится некорректно, будет выдано короткое сообщение о причине, и перехода в режим просмотра и печати отчета не произойдет.

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


Рис. 5.64.  Панель настройки параметров редактора связей

Объектный код программы может быть задан двумя способами: в виде раздела библиотеки ISPF или как произвольный набор данных (например, последовательный набор данных). Дополнительные библиотеки объектных и загрузочных модулей, необходимые для работы редактора, задаются путем ввода их имен в поля, помеченные как SYSLIB и SYSLIN.

В поле Linkage editor/binder options можно указать опции выбранного редактора связей. При этом следует иметь в виду, что ISPF всегда автоматически устанавливает следующие опции:

  • LOAD - требует сохранить загрузочный модуль в библиотечном наборе данных;
  • LIB - определяет последовательность обработки входных наборов данных;
  • PRINT - требует сохранить выходной отчет в наборе данных.


Тип используемого редактора связей (Binder или Linkage editor) задается с помощью списка выбора Processor. Значение поля List ID служит для формирования имени набора данных, содержащего листинг редактора связей.


Имя формируется по шаблону [prefix.]userid.listid.LINKLIST в соответствии с правилами, изложенными выше.

Создаваемый в результате загрузочный модуль будет размещен в наборе данных с именем, заканчивающимся квалификатором LOAD (по аналогии с образованием имен объектных модулей).

Практически все описанные выше средства интерактивного режима доступны и при использовании функции 5 ISPF/PDF "Пакетный режим" (Batch), которая обеспечивает поддержку средств разработки программ в пакетном режиме (рис. 5.65). Основное отличие от интерактивного режима заключается в том, что терминал освобождается для выполнения другой работы сразу же после запуска пакетного задания.


Рис. 5.65.  Панель настройки параметров ассемблера

При вызове компилятора или редактора связей в пакетном режиме ISPF автоматически генерирует текст задания, включая в него все необходимые инструкции в соответствии с параметрами, определенными пользователем. Пользователь может непосредственно описать несколько инструкций, в том числе инструкцию JOB, работая с полями панели Job Statement Information.

Отчет о выполнении задания может быть помещен в указанный набор данных или направлен на печать путем настройки в выбранной панели компилятора или ассемблера. Первая возможность связана с установкой параметра List ID и описана выше. Вторая возможность реализуется при вводе выходного класса задания в поле SYSOUT class. В этом случае просмотр отчета можно произвести с помощью утилиты Outlist или SDSF, как было описано выше.

Выход из функции Batch с использованием команд END, RETURN или прямого перехода (=) приведет к автоматическому запуску сформированного задания (SUBMIT).


Содержание раздела