Interested Article - 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
 

Литература

  • . History of Programming Languages (HOPL), Murdoch University, AU (2006). Дата обращения: 1 апреля 2008. Архивировано из 24 декабря 2010 года.
  • . History of Programming Languages (HOPL), Murdoch University, AU (2006). Дата обращения: 1 апреля 2008. Архивировано из 15 апреля 2011 года.
  • DuCharme, Bob (26 февраля 2006). Дата обращения: 1 апреля 2021. 14 мая 2008 года.
  • Cozzi, Robert (1996). Дата обращения: 1 апреля 2021. 3 ноября 2012 года.
  • Shelly, Gary B. / Gary B. Shelly, Thomas J. Cashman. — Fullerton, California : Anaheim Publishing Company, 1977. — ISBN 0-88236-225-9 .
Источник —

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