Язык программирования RPG от IBM: обзор

  • 26 февраля, 15:36
  • 3700
  • 0

Report Program Generator (или RPG) - это язык программирования высокого уровня, синтаксис которого был изначально сходен с командным языком механических табуляторов компании IBM. Это проприетарный модуль программирования IBM, и доступ к большинству его более поздних версий возможен только в системах на базе IBM i или OS / 400.

RPG имеет довольно долгую историю. Он был разработан техническим гигантом IBM в 1959 году как инструмент, который был придуман, чтобы служить альтернативой для системы обработки перфокарт на IBM 1401. Однако впоследствии он был обновлен до RPG II в 1960-х годах. С тех пор он превратился в языковой эквивалент высокого уровня COBOL и PL/I.

Язык программирования RPG от IBM: обзор

На сегодняшний день RPG по-прежнему является популярным языком программирования в операционной системе IBMi. RPG IV (также известная как ILE RPG) является самой последней версией RPG и представляет собой инструмент, который обеспечивает высокоэффективную среду программирования для программистов AS400 RPG.

Когда RPG был впервые разработан, основную опору, которую он имел, был программный цикл. Каждая программа RPG выполняет программы в рамках гипотетического цикла. Этот цикл может применять одну и ту же программу к каждому записанному файлу. В это время будет проведено сравнение между каждой записью и каждой строкой в программе. У каждой строки есть выбор: действовать на запись или нет, в зависимости от того, включен ли индикатор в этой строке. Вся идея разрывов уровней и соответствующих записей является уникальной для языка RPG II.

С тех пор, как System/38 была представлена в 1979 году, большинство программистов RPG прекратили использовать цикл и предпочитали управлять потоком программ, который имеет стандартные циклические конструкции. Тем не менее, IBM также продолжает обеспечивать обратную совместимость для цикла.

Программисты IBM i RPG

Программисты IBM iSeries (или, если хотите, программисты AS400 RPG) - это специалисты, обученные использованию языка программирования RPG для манипулирования и решения проблем. Программисты RPG обычно работают в компаниях IBM.

Программист RPG может выполнять широкий спектр задач:

  1. Анализ, проектирование, разработка и сопровождение программного обеспечения IBM, написанного на множестве языков, включая RPG, RPG ILE, RPG-FREE и SQL.
  2. Следование различным функциональным спецификациям с целью создания технической документации и разработки псевдокодов.
  3. Создание новых программ RPG, либо модификация существующие.

RPG имеет долгую историю ...

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

RPG II: после RPG, RPG II пополнилась большим количеством обновлений и модификаций, чтобы его можно было легко запускать на самых маленьких системах IBM того времени. К ним относятся - IBM 1130, IBM system3, system34 и system36. Позже он также использовался в более крупных системах, таких как system370. Наиболее интересным аспектом RPG II является то, что это язык программирования фиксированного формата, каждый код должен быть помещен в соответствующий столбец, чтобы генерировать правильный вывод.

RPGIII: следующим в очереди является RPG III, который был разработан для System38 и других более крупных систем. RPGIII более усовершенствован и мог поддерживать новые структуры, такие как IF END IF, циклы DO и подпрограммы. Он был доступен для более крупных систем, таких как IBM system370 с ОС VS1.

RPGIV / RPGLE:  RPGIV был разработан в 1994 году и имеет множество улучшений по сравнению с RPGIII, таких как:

  1. Более длинные имена полей
  2. Отладка на уровне источника
  3. Дата и время поддержки
  4. Дополнительные типы данных (с плавающей точкой, логические, указатели)
  5. Выражения в произвольном формате
  6. Встроенные функции

Особенностью RPGIV является то, что он совместим с ILE. Это означает, что у программистов есть множество преимуществ в плане функциональности, производительности и обслуживания, кроме возможности интеграции нескольких языков.

RPG5  - это бесплатная версия формата ILE от IBM i V5 и RPG6  от IBM i V6.

RPG7:  RPG 7 является последней версией языка программирования RPG и широко используется в отрасли. Это полностью бесплатный формат от IBM i V7.

RPG Open Access Handler

Обработчик на любом языке программирования - это событие или функция, созданная для определенной задачи. RPG-обработчик открытого доступа - это интерфейс или метод, который обрабатывает связь с доступными ресурсами и устройствами. Рациональный открытый доступ - это способ для программистов RPG использовать модель ввода-вывода RPG, чтобы легко использовать ресурсы и устройства, которые не поддерживаются RPG напрямую.

Платформы, на которых развернуты RPG

Начальные версии RPG были разработаны для систем IBM, таких как системы 1401, / 360, / 3, / 32, / 34, / 36, / 38 AS / 400 и System i. Позже он был усовершенствован и реализован для Sperry Univac BC / 7, Digital VAX, Siemens BS2000, Univac system 80, Burroughs B700, B1700 и многих других. Последней платформой, разработанной для компилятора RPG, является Windows .Net через компилятор WINRPG.

Пример кода

      * "F" (file) specs define files and other i/o devices
     FARMstF1   UF   E        K     Disk    Rename(ARMST:RARMST)

      * "D" specs are used to define variables and parameters
      * The "prototype" for the program is in a separate file
      * allowing other programs to call it
      /copy cust_pr
      * The "procedure interface" describes the *ENTRY parameters
     D getCustInf      PI
     D  pCusNo                        6p 0   const
     D  pName                        30a
     D  pAddr1                       30a
     D  pAddr2                       30a
     D  pCity                        25a
     D  pState                        2a
     D  pZip                         10a
      /free
        // The "chain" command is used for random access of a keyed file
        chain pCusNo ARMstF1;

        // If a record is found, move fields from the file into parameters
        if %found;
           pName  = ARNm01;
           pAddr1 = ARAd01;
           pAddr2 = ARAd02;
           pCity  = ARCy01;
           pState = ARSt01;
           pZip   = ARZp15;
        endif;      

      // RPG makes use of switches.  One switch "LR" originally stood for "last record"
      //LR actually flags the program and its dataspace as removable from memory.
        *InLR = *On;
      /end-free
Источник перевода


0 комментариев
Сортировка:
Добавить комментарий