RPGLE - это язык программирования высокого уровня (HLL) для бизнес-приложений для программ, работающих в интегрированной языковой среде (ILE). IBM является создателем RPGLE. Используйте этот тег для всех вопросов о RPG IV и RPG в свободном формате. Используйте тег RPG, чтобы задать вопросы о более старых версиях RPG и вариантах языка других производителей.

Последняя версия RPG - RPG IV (также известная как ILE RPG) на серверах IBM Power i; он наследует функции интегрированной языковой среды System i, такие как прототипы функций и процедур, статическая и динамическая привязка, доступ к библиотекам подпрограмм C, библиотекам динамической компоновки, а также полностью рекурсивный и повторно используемый модульный код.

RPG (также называемый RPG IV и RPGLE) - популярный язык программирования платформы IBM Power i. Первоначально созданный как средство составления отчетов для имитации обработки карт в IBM System/3 в начале 1960-х годов, RPG с тех пор превратился в HLL, эквивалентный COBOL и PL/I.

Программа RPG обычно начинается со спецификаций файлов, в которых перечислены все файлы, в которые записываются, читаются или обновляются, а за ними следуют спецификации определения данных, содержащие элементы программы, такие как структуры данных и размерные массивы, что очень похоже на раздел "Рабочее хранилище" в COBOL. program или операторы var в программе на языке Pascal. Далее следуют спецификации вычислений, которые содержат фактическое содержание кода. Могут следовать спецификации вывода, которые могут использоваться для определения макета других файлов или отчетов. В качестве альтернативы файлы, некоторые структуры данных и отчеты могут быть определены извне, что в основном устраняет необходимость вручную вводить и выводить спецификации кода.

На заре ролевой игры ее главная сила была известна как программный цикл: каждая программа RPG выполняется в рамках подразумеваемого цикла, который может применять программу к каждой записи файла. В это время каждая запись (отдельная перфокарта) будет сравниваться с каждой строкой в ​​программе, которая будет воздействовать на запись или нет, в зависимости от того, был ли в этой строке "индикатор" включен или выключен - от набор логических переменных, пронумерованных 01–99 для определенных пользователем целей, или другие меньшие наборы, основанные на функциях обработки записей, полей или отчетов.

В качестве альтернативы цикл может заставить интерактивную программу продолжать работу до тех пор, пока она не будет остановлена ​​явным образом.

Сегодня большинство программистов RPG избегают использования цикла в пользу управления потоком программы с помощью стандартных конструкций цикла. Концепция разрывов уровней и сопоставления рекордов уникальна для языка RPG. Первоначально он разрабатывался для считывателей карт.