RPG (язык программирования)

RPG (Report Program Generator) — язык программирования, синтаксис которого был изначально сходен с командным языком механических табуляторов компании IBM. Был разработан для облегчения перехода инженеров, обслуживавших эти табуляторы, на новую технику и переноса данных, первоначально был реализован для IBM 1401. Широко использовался в 1960-х и 1970-х годах.

Наиболее распространённой версией языка, по всей видимости, являлась RPG II.

Компания IBM продолжает поддержку языка и в настоящее время, так как на нём написан громадный объём кода, который невыгодно переводить на другие языки программирования.

В версии RPG IV, выпущенной в 2001 году, введены элементы объектного программирования.

Кроме мэйнфреймов и машин AS/400 от IBM, RPG был реализован на платформах Digital VAX, Sperry Univac BC/7, Univac system 80, Siemens BS2000, Burroughs B1700, Hewlett Packard HP3000, ICL 2900 series, Honeywell 6220, WANG VS, IBM PC (DOS).

Компилятор Visual RPG, разработанный сторонним производителем, обеспечивает работу под Windows и поддержку GUI. Существуют также реализации для OpenVMS и других, более экзотических платформ.

Пример кода

[править | править код]
      * "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  

Литература

[править | править код]