# RPG

### от Уикипедия, свободната енциклопедия

Тази статия се нуждае от подобрение.

Необходимо е: привеждане в енциклопедичен вид. Ако желаете да помогнете на Уикипедия, просто щракнете на редактиране и нанесете нужните корекции.

## [редактиране] История на езика и развитие

RPG е един от малкото езици направени за перфокарти използван и до днес. Това е така защотото този език е еволюирал значително през последно време. Първоначално той е създаден. от IBM през 1960г и става много популярен в IBM 1401. В началото RPG e бил акроним на Report Program Generator, като целта на езика била да генерира доклади oт файлове с данни, включително подобни записи и обобщени доклади. За вбъдеще RPG продължил да се развива под крилото на IBM за mainframe системите, особено за S/360 – като бил създаден RPG II. През 1994г. бил създаден RPG IV, който предлагал голямо разнообразие от вътрешни изрази като новите му разширени Factor-2 изчислителни спецификации. През 2001 година версията му за OS/400 V5R1, RPG IV предлага много по голяма свобода на изчисленията: free-format text-capable source вход, като алтернатиен на оригиналния колонно-зависим source формат.”/FREE” изчисленията не изисквали операционния код да бъде поставян в отделна (собствена) колона; операционния код бил незадължителен за EVAL и CALLP операциите; и синтактичния код много приличал на този от „mainstream”. Днес RPG IV е значително по силен език. Тои включва протопипни функции и процедури, статични и динамични свойства, достъп до С стандартни библиотеки и динамично свързани библиотеки. Може да бъде редактиран на прости редактори или на редактора за PC IBM's Websphere Development Studio.

## [редактиране] Обща характеристика

RPG (Report Program Generator) е език за решаване на специализирани задачи от икономическата област – счетоводство, ичисляване на работни заплати, складови наличности и други. Специална програма реализира поставените задачи, описани чрез езика RPG.

Сложният синтаксис се преодолява с използването на специализирани формуляри, в които се въвеждат програмите. Програмирането на RPG прдставлява формално попълване на бланки, като няма алгоритъм на програмата.

Попълват се следните бланки:

Бланка 1.Описание на файловете Бланка 2. Вход Бланка 3. Пресмятане Бланка 4. Изход

Бланка 1. Описание на файловете Име на файла Тип: входен | изходен | обновяем Вид: първичен, вторичен, табличен, … Край – има ли маркер в края на файла Подредба на записите: нарастваща, намаляваща Формат на записа: фиксирана дължина, променлива дължина Дължина на блок – брой байтове Максимална дължина на запис – брой байтове Тип на В/И устройство: ПК, МЛ, диск, печатащо, … Име на В/И устройство Етикети за защита: стандартни | няма Управление на магнетофона: пренавиване и др.

Бланка 2. Вход Описва процеса на въвеждане на данните – обикновенно това са подредени перфокарти.

Лява половина – описание на записа Дясна половина – описание на полетата

Бланка 3. Пресмятане Описва изпълнителния процес върху данните.

Индикатори за операцията (режими) Операнд 1: име на поле, тип Операция: аритметична (ADD, SUB и т.н.), пренасяне, сравнение, … Операнд 2: име на поле, тип Резултат: има на поле, дължина на полето, десетични позиции, закръгляне, индикатори за +, 0 и –л

Бланка 4. Изход Задава макет на печата: характеристики на заглавния ред и данните.

Имe на файл Тип на запис Индикатори (свързани с ПК, ПЛ, …) Описание на полетата и литералите

Използват се индикатори – ключове, които приемат състояние включено и изключено. Подпрограми могат да се създават на Асемблер, но не и на езика RPG, който задава фиксирана схема на работа.

Примерен код на езика:

- "F" (file) specs define files and other i/o devices

        FARMstF1   UF   E             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" stands for
           // "last record".  This ends program execution.
           *InLR = *On;
         /end-free

RPG не се предлага масово за микро компютри, с изключение на версията Baby/34, която дава възможност да се симулират операциите на IBM System/34 и да се създават изпълнителни програми на RPG II. Този език става основата за създаване на група езици, наричани „икономически езици”, тъй като се използват обикновено за създаване на бази от данни за икономически приложения. Такъв език е dBase II, а по-късно и dBase III, разпространени от Ashton-Tate Company. Икономическата информация може да се съхранява и извлича с помоща на прост език за управление на бази от данни.

Взето от „http://bg.wikipedia.org../../../r/p/g/RPG_6fc6.html“.

Категории: Статии за редактиране | Езици за програмиране

##### Views

- Статия
- Беседа
- Текуща версия

##### Търсене

##### На други езици

- English