RPG (Report Program Generator)
Последнее изменение этой страницы: 21:49, 8 июня 2016.
Парадигма | мультипарадигмальный |
---|---|
Разработчики | IBM |
Печать дисциплины | Строгая, статическая |
Диалект | |
RPG, RPG II, RPG III, RPG 400, RPG IV, RPG/ILE; RPG/Free, Baby/36, Baby/400, Lattice RPG | |
Влияние | |
RPG II |
RPG (Report Program Generator) - это машинно независимый язык. Его конструкция позволяет написать программы без досконального знания операционной системы. Из-за логики программного цикла обработки (PLC), программист может сосредоточиться на проблемах, которые должны быть решены программой, а не операционной системой. Компилятор преобразует спецификации в инструкции, которые делают все, что необходимо для воспроизведения требуемой мощности для программы.
Содержание
Применение RPG
Программы, написанные на RPG, часто используются для создания пользовательских отчетов из данных, содержащихся в файлах. Тем не менее, RPG может быть использован для различных приложений по обработке данных, которые не включают в себя создание отчета в традиционном смысле этого слова.
RPG обладает следующими преимуществами для пользователя:
- Простой синтаксис, позволяющий легко реализовывать программы.
- Простота преобразования через стандартные реализации.
- Полная документация.
- Хорошая вычислительная мощность.
Создание файлов
Система команд и управления (CANDE) а так же система контроля сообщений (MCS) создает программный файл. Cande облегчает редактирование и управление программами. Дополнительная информация на CANDE предоставляется в CANDE Operations Reference Manual.
Диалекты RPG
RPG для систем на основе MCP поддерживает два диалекта: RPG I и II RPG. RPG I диалект совместим с RPG IBM 360/20. Диалект RPG II совместим с IBM System / 36 RPG II. Оба диалекта поддерживают расширения на основе MCP. Если нужны функции RPG I, 1 должен быть введен в Source Dialect field (колонка 51) из спецификации управления; в противном случае, этот столбец должен быть пустым. Исходный код программы не проверяется по отношению к синтаксису выбранного диалекта; эта опция используется только для разрешения конфликтов между диалектами. При условии, что никакого конфликта не существует, функции RPG II могут быть использованы, если указан диалект RPG I; Аналогичным образом, функции RPG I могут быть использованы если указан диалект RPG II.
Программы написанные на RPG
Программа, написанная на языке RPG, называется исходным кодом RPG программы. RPG компилятор проверяет, что исходный код программы синтаксически правильный, и преобразует этот исходник в машинный код. После компиляции программы, она готова для исполнения системой.
Организация исходного файла
Организация исходного файла программы, написанной на RPG проиллюстрирована на Рисунке 1
Технические характеристики | Описание |
Контроль (Control) | Предоставляет информацию о программе и выбирает опции компилятора. Спецификация управления не является обязательной. |
База данных (Database) | Устанавливает связь между программой RPG и DMSII. База данных спецификации используется для вызова базы данных. |
Файл (File) | Описывает файлы, используемые в программе, и связывает их с аппаратными устройствами. |
Атрибут файла (File Attribute) | Обеспечивает дополнительную информацию о файле, используемой операционной системой. Эти спецификации сразу следуют за спецификацией файла, к которому они относятся. |
Расширение (Extension) | Описывает векторы (таблицы и массивы) и записи-адреса файлов, используемых в программе. |
Счётчик строк (Line Counter) | Предоставляет информацию о количестве напечатанных строк на каждой странице вывода на принтер. |
Связь (Telecommunications) | Устанавливает и поддерживает связь между программой RPG и системой управления сообщениями (MCS). |
Библиотека (Library) | Ссылки программы RPG в библиотеку процедур, написанных на любом языке, который может быть вызван с помощью программы RPG. |
Атрибут Библиотеки (Library Attribute) | Содержит дополнительную информацию, используемую библиотеками операционной системы. Эти спецификации следуют непосредственно за спецификацией самой библиотеки, к которой они относятся. |
Вход (Input) | Описывает расположение записей, прочитанных программой. |
Расчет (Calculation) | Описывает последовательность и сроки проведения расчетов, выполненных на данных в программе. Расчет характеристики также можно описать входным и выходным контролем для некоторых файлов. |
Вывод (Output) | Определяет тип и формат данных, записанных в качестве выхода из программы. |
Альтернативная последовательность упорядочения (Alternate Collating Sequence ) | Изменяет EBCDIC последовательности упорядочения. Характеристики записи также могут быть использованы. |
Перевод файла (File Translation) | Переводит символы между набором символов EBCDIC и указанным пользователем набором символов. Может предшествовать или следовать спецификации альтернативной последовательности упорядочения. Характеристики записи также могут быть использованы. |
Вектор данных (Vector Data) | Нагрузки во время компиляции векторных данных. Характеристики записи Canbe также используется. |
Векторные элементы данных (Vector Data Elements) | Обеспечивает дополнительную информацию о векторе данных, который используется операционной системой. |
Пример кода
Следующая программа получает номер клиента в качестве входного параметра и возвращает имя и адрес в качестве выходных параметров. Это самый примитивный вариант синтаксиса RPG IV.
* Исторически сложилось так, что написание программы в RPG * проводится в столбик, хотя ограничений на форматирование нет. * Цель строки в коде определяется буквенным кодом в начале колонки. * Например, звёздочкой обозначаются комментарии. * Символ "F" (file) определяет файлы и другие устройства ввода вывода. F ARMstF1 IF E K Disk Rename(ARMST:RARMST) * Символ "D" используется для определения переменных D pCusNo S 6p D pName S 30a D pAddr1 S 30a D pAddr2 S 30a D pCity S 25a D pState S 2a D pZip S 10a * Символ "C" (calculation) используется для исполняемых операторов * параметры определяются с помощью ключевых слов plist и parm C *entry plist C parm pCusNo C parm pName C parm pAddr1 C parm pAddr2 C parm pCity C parm pState C parm pZip * Команда "chain используется для произвольного доступа к ключу файла C pCusNo chain ARMstF1 * Если запись найдена, то перемещаем поля из файла в параметры C if %found C eval pName = ARNm01 C eval pAddr1 = ARAd01 C eval pAddr2 = ARAd02 C eval pCity = ARCy01 C eval pState = ARSt01 C eval pZip = ARZp15 C endif * RPG использует флаги. Один из них "LR" первоначально обозначал последнюю запись C eval *InLR = *On
Связанные страницы
- Смит, Брайн Р.; Мартин Барбо; Сьюзан Гантер; Джон Перис; Здравко Винчетик; Владимир Зупка (April 25, 2000). "Кто знает, что вы сможете сделать с RPG IV? Руководство колдуна по доступу к ресурсам системы и многое другое." (PDF). Международная организация технической поддержки IBM. Retrieved 2012-02-18. "Эта красная книга ориентирована на RPG IV, как на современный, процветающий и богатый язык разработки приложений для 21-ого века.
- Midrange.com - Большое количество примеров кода доступны здесь.
- RPGPGM.COM - Обширный ресурс статей с примерами кода на RPG и других связанных с программированием примеров.
- RPG Open - Бесплатный, находящийся в открытом доступе, сервис программ с дополнительными процедурами, написанными на RPG IV для RPG IV.
- RPG для COBOL программистов - Заметки.
- RPG II for MVS, OS/390 and z/OS - Статус IBM RPG II продукта в z/OS.
- The Compilerator -Онлайн RPG II компилятор для небольших экспериментов и проб.
ISSN 2542-0356
Следуй за Полисом
Оставайся в курсе последних событий
Лицензия
Если не указано иное, содержание этой страницы доступно по лицензии Creative Commons «Attribution-NonCommercial-NoDerivatives» 4.0, а примеры кода – по лицензии Apache 2.0. Подробнее см. Условия использования.