RPG (мова програмування)

(Перенаправлено з IBM RPG)

RPG — (англ. Report Program Generator) мова програмування, синтаксисом спочатку схожа з командною мовою механічних табуляторів компанії IBM. Мова RPG була розроблена для полегшення переходу інженерів, що обслуговували ці табулятори на нову техніку і переносу даних. Спочатку була реалізована для IBM 1401. Найрозповсюдженіша версія — RPG II. Мова RPG широко використовувалась в 1960-х і 1970-х роках.

RPG
Парадигма процедурне програмування
Дата появи 1959
Розробник IBM
Останній реліз 7.4[1]
Система типізації строга типізація і статична

Компанія 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. Також існують реалізації RPG для 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
 

Майданчик тенет ред.

1401 RPG manual (1964)[недоступне посилання з червня 2019]

  1. https://www.ibm.com/docs/de/i/7.4?topic=wn-whats-new-in-74-1#rpgrelv7r4