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]