RPG (limbaj de programare)

RPG (Report Program Generator) este un limbaj de programare a cărui sintaxă a fost inițial similară cu limbajul de comandă al tabulatoarelor mecanice IBM . Conceput pentru a facilita tranziția inginerilor care au întreținut aceste tabulatoare la noi echipamente și transfer de date, a fost implementat inițial pentru IBM 1401. Folosit pe scară largă în anii 1960 și 1970 .

Cea mai comună versiune a limbajului pare să fi fost RPG II.

IBM continuă să susțină limbajul în prezent, deoarece în el este scrisă o cantitate imensă de cod, care nu este profitabil pentru a fi tradus în alte limbaje de programare.

Lansată în 2001, versiunea RPG IV a introdus elemente de programare a obiectelor.

Pe lângă mainframe -urile IBM și mașinile AS/400 , RPG a fost implementat pe Digital VAX , Sperry Univac BC/7, Univac system 80, Siemens BS2000, Burroughs B1700, Hewlett Packard HP3000, seria ICL 2900, Honeywell VS, IBM VS, WANG Platforme PC ( DOS ).

Un compilator Visual RPG terță parte oferă suport pentru Windows și GUI . Există și implementări pentru OpenVMS și alte platforme mai exotice.

Exemplu de cod

* Specificațiile „F” (fișier) definesc fișierele și alte dispozitive de i/o FARMstF1 UF EK Redenumire disc (ARMST:RARMST) * Specificațiile „D” sunt folosite pentru a defini variabile și parametri * „Prototipul” pentru program se află într-un fișier separat * permițând altor programe să-l apeleze /copy custom_pr * „Interfața de procedură” descrie parametrii *ENTRY D getCustInf PI DpCusNo 6p 0 const D pNume 30a DpAddr1 30a DpAddr2 30a DpCity 25a D pState 2a D pZip 10a /gratuit // Comanda „lanț” este folosită pentru accesul aleatoriu a unui fișier cu cheie lanț pCusNo ARMstF1; // Dacă se găsește o înregistrare, mutați câmpurile din fișier în parametri daca este gasit; pName=ARNm01; pAddr1 = ARAd01; pAddr2 = ARAd02; pCity=ARCy01; pState=ARSt01; pZip=ARZp15; endif; // RPG folosește comutatoare. Un comutator „LR” a reprezentat inițial „ultima înregistrare” //LR semnalează de fapt programul și spațiul său de date ca fiind amovibile din memorie. *InLR = *Pornit; /fără sfârșit

Literatură