IBM RPG
IBM RPG| 패러다임 | 다중 패러다임 |
|---|---|
| 개발자 | IBM |
| 처음 등장한 | 전 ( |
| 안정된 릴리스 | RPG IV 버전7 릴리즈 4 / 2020년 10월 6일 ( |
| 타이핑 분야 | 강력, 정전기 |
| OS | CPF, SSP, OS/400, IBM i, OS/VS1, z/OS, DOS/VSE, VSE/SP, VSE/ESA, z/VSE, VS/9, PRIMOS, OpenVMS, Wang VS, Burroughs MCP, MPE |
| 사투리 | |
| RPG, RPG II, RPG III, RPG 400, RPG IV, RPG/ILE, 프리, 베이비/36, 베이비/400, 래티스 RPG, VAX RPG II | |
| 영향을 받다 | |
| 9PAC, FARGO | |
RPG는 1959년 IBM 1401용으로 도입된 비즈니스 애플리케이션용 고급 프로그래밍 언어입니다.IBM i 운영 체제를 [1]비롯한 IBM의 미드레인지 컴퓨터 제품군의 주요 프로그래밍 언어로 가장 잘 알려져 있습니다.RPG는 전통적으로 프로그램 주기 및 열 지향 [2]구문과 같은 많은 독특한 개념을 특징으로 합니다.최신 버전은 RPG IV로, 자유 형식 [3]구문을 포함한 많은 현대화 기능을 포함하고 있습니다.
플랫폼
RPG 프로그래밍 언어는 원래 IBM이 1401 시스템을 위해 만들었습니다.또한 System/360을 구현하여 미드레인지 컴퓨터 제품 라인(System/3, System/32, System/34, System/38, System/36 및 AS/400)의 주요 프로그래밍 언어가 되었습니다.또한 VAX, Sperry Univac BC/7, Univac 시스템 80, Siemens BS2000, Burroughs B700, B1700, Hewlett Packard HP 3000, ICL 2900 시리즈, Honeywell 6220 및 2020, 4상 IV/90 시리즈 시스템도 구현되어 있습니다.ch는 Infinite36(구 Unibol 36) 및 PC(Baby/400, Ratice-RPG)로 표시됩니다.
RPG II 애플리케이션은 IBM z/VSE[4] 및 z/OS 운영 체제,[5] Unisys MCP,[6] Microsoft[7] Windows 및 OpenVMS에서 [8]계속 지원됩니다.
역사
배경
1959년 IBM에 의해 처음 개발된 Report Program Generator라는 이름은 언어의 목적, 즉 데이터 [9]파일에서 보고서를 생성하는 것을 의미했습니다.FOLDOC는 Wilf Hey가 [10]RPG의 개발로 IBM에 근무한 것을 인정합니다.FARGO(Fourteen-o-One Automatic Report Generation Operation)는 IBM 1401의 RPG의 전신입니다.
두 언어 모두 IBM 장치 기록 장비 기술자가 새로운 컴퓨터로 쉽게 전환할 수 있도록 하기 위한 것입니다.탭 기계 기술자는 입력, 출력, 제어 및 카운터 조작(더하기, 빼기, 곱하기, 나누기)을 구현하기 위해 제어판에 와이어를 연결하는 데 익숙했습니다.탭 머신 프로그램은 기계 사이클에서 방출되는 임펄스에 의해 실행되었으며, 따라서 FARGO와 RPG는 프로그램 사이클과 기계 사이클의 개념을 모방하였다.RPG는 보고서 생성 프로그램으로서 FARGO보다 우수하고 빠르게 대체되었습니다.
당시 일반적으로 사용 가능한 대체 언어는 어셈블러, COBOL 또는 FORTRAN이었습니다. 어셈블러와 COBOL은 메인프레임 비즈니스 운영(시스템/360 모델 30 이상) 및 RPG에서 더 일반적으로 사용되었으며, 고객은 표에서 장비를 전환한 상태(시스템/360 모델 20)에 더 많이 사용되었습니다.
RPG II
RPG II는 System/3 시리즈 컴퓨터에 도입되었습니다.나중에 System/32, System/34 및 System/36에서 사용되었으며 언어 버전이 개선되었습니다.RPG II는 DOS/VSE(당시 VSE/SP, VSE/ESA, z/VSE)를 실행하는 IBM System/370 메인프레임을 포함한 대형 시스템에도 사용할 수 있었습니다.ICL은 VME/K 운영체제 버전도 제작했습니다.
RPG 초기 강점은 프로그램 사이클이었다.프로그래머는 개별 레코드를 처리하기 위해 코드를 작성하고 프로그램 사이클은 파일의 모든 레코드에 대해 변경을 실행하여 제어 흐름을 관리합니다.그 때, 각 레코드(개별 펀치 카드)를 프로그램의 각 라인과 비교하고, 그 라인에 「인디케이터」가 온인지 오프인지에 근거해 레코드에 따라 동작한다.인디케이터는 사용자 정의 목적을 위해 01 ~ 99의 번호가 매겨진 논리 변수 세트 또는 레코드, 필드 또는 보고서 처리 기능에 기초한 기타 작은 세트로 구성됩니다.레벨 브레이크와 매칭 레코드의 개념은 RPG II 언어 특유의 것으로, 원래는 카드 리더를 염두에 두고 개발되었습니다.사이클의 일치 레코드 기능에 의해, 헤더와 디테일의 관계를 가지는 파일을 간단하게 처리할 수 있었습니다.프로그램 사이클을 이용하기 위해 작성된 RPG 프로그램은 COBOL 및 기타 비즈니스 중심 언어로 작성된 프로그램보다 훨씬 적은 수의 컴퓨터 코드 행으로 복잡한 보고서를 생성할 수 있습니다.
프로그램 파일 사양에는 쓰기, 읽기 또는 업데이트되는 모든 파일이 나열되어 있으며, 이어서 데이터 구조 및 치수 배열 등의 프로그램 요소가 포함된 데이터 정의 사양이 표시됩니다. 이는 COBOL 프로그램의 "작업 스토리지" 섹션과 유사합니다.그 다음에 실행 가능한 명령이 포함된 계산 사양이 나옵니다.출력 사양에 따라 다른 파일 또는 보고서의 레이아웃을 결정할 수 있습니다.또는 파일, 일부 데이터 구조 및 보고서를 외부에서 정의할 수 있으므로 대부분 코드 입력 및 출력("I/O") 사양을 직접 처리할 필요가 없습니다.
RPG III
RPG III는 System/38과 그 후속 AS/400용으로 개발되었습니다. RPG III는 원래의 언어에서 크게 벗어나 IF-ENDIF 블록, DO 루프, 서브루틴과 같은 현대적인 구조 구조를 제공합니다.RPG III는 OS/VS1을 실행하는 IBM System/370 메인프레임을 포함한 대형 시스템에도 사용할 수 있었습니다.UNIVAC 시리즈 90 메인프레임에서 실행되는 VS/9 운영 체제용 Unisys에서도 사용할 수 있습니다.
1979년 IBM System/38이 도입된 이후 대부분의 RPG 프로그래머는 표준 루프 구조를 사용하여 프로그램 흐름을 제어하기 위해 사이클 사용을 중단했지만 IBM은 사이클에 대한 하위 호환성을 계속 제공해 왔습니다.
DE/RPG
DE/RPG 또는 Data Entry RPG는 80년대 초에 IBM 5280 시리즈 데이터 입력 워크스테이션에서만 사용할 수 있었습니다.RPG III와 비슷하지만 System/38 및 그 후속 제품과 같은 데이터(파일)를 기술하는 외부 데이터 설명(DDS)이 없습니다.대신 DDS 부분은 RPG 소스 자체에 포함되어야 했습니다.
RPG/400
RPG/400은 사실상 AS/400에서 RPG III를 실행하고 있었다.IBM은 RPG 컴파일러의 이름을 "RPG/400"으로 변경했지만, 출시 당시에는 System/38의 RPG III 컴파일러와 동일했습니다.거의 모든 IBM 제품이 xxx/400으로 브랜드 변경되었으며 RPG 컴파일러도 예외는 아니었습니다.RPG/400 컴파일러로 컴파일된 RPG III는 IBM이 AS/400을 몇 년 동안 사용할 수 있게 된 후 SCAN, CAT 및 XLATE와 같은 새로운 운영 코드 개발을 시작할 때까지 RPG III 언어에 새로운 기능을 제공하지 않았습니다.RPG III에 대한 이러한 확장 기능은 RPG III의 System/38 버전에서는 사용할 수 없었습니다.
RPG IV 및 ILE RPG
RPG IV(일명.k.a. RPGLE)는 OS/400(현재는 IBM [12]i)의 V3R2 릴리스의 일부로 1994년에 출시되었습니다.[13]
RPG IV의 발매와 함께, RPG라는 이름은 공식적으로 더 이상 이니셜리즘이 아니었다.RPG IV는 확장 계수 2 계산 사양과 나중에 자유 형식의 계산 사양 및 프로시저 구문에 더 다양한 식을 제공했습니다.ILE RPG에서 알려진 통합 언어 환경 프레임워크의 RPG IV와 사용자 가이드는 두 가지 [14][15][16]뉘앙스를 설명합니다.RPG IV 및 ILE RPG는 현재 IBM i [17]플랫폼에서 IBM에 의해 지원됩니다.
2001년에 OS/400 V5R1이 출시됨에 따라 RPG IV는 확장 계수 2 계산 사양에서 제공하는 것보다 더 많은 계산의 자유를 제공했습니다.이것은 원래 컬럼 의존 소스 포맷의 대체 수단으로서 자유 형식의 텍스트 대응 소스 엔트리입니다."/FREE" 계산에서는 특정 열에 연산 코드를 배치할 필요가 없습니다. 연산 코드는 EVAL 및 CALLP 연산에서는 옵션입니다.구문은 일반적으로 주류 범용 프로그래밍 언어의 구문과 유사합니다.2013년 11월까지 무료 포맷은 계산 [18]사양에만 적용되었습니다.IBM i7R1 TR7이 언어로 업그레이드됨에 따라 "/free" 및 "end-free" 계산이 더 이상 필요하지 않게 되었고, 이 언어는 마침내 천공 카드와의 연결을 끊었습니다.
IBM RDI([19]IBM Rational Developer for i)는 Eclipse 기반 통합 개발 환경이며, IBM이 RPG 개발을 위해 권장하는 제품입니다.RDi는 ILE([20]Integrated Language Environment) 컴파일러 제품군인 IBM Rational Development Studio for i의 일부입니다.
SEU(Source Entry Utility) 텍스트 편집기는 더 이상 RPG 개발에 권장되지 않으며 IBM i 6.1 [21]이후 개발이 중단되었습니다.다른 레거시 개발자 도구로는 CODE/400(IBM WorkFrame/2 기반) 및 VisualAge for RPG가 있습니다.
지속적인 언어 향상
IBM은 소프트웨어 릴리스 및 릴리스 내 "기술 업데이트"(TR)[23][24]를 통해 RPG 언어를[22] 지속적으로 향상시키고 있습니다.내장 기능(BIF)이 추가되었습니다.Java [25]개체 및 IBM i API에 연결할 수 있으며 IBM의 Cgidev2 웹 [26]툴킷, RPG 도구 상자 및 기타 상용 웹 지원 패키지의 도움을 받아 CGI 프로그램을 작성하는 데 사용할 수 있습니다.변경해도 하위 호환성이 매우 높기 때문에 37년 전에 작성된 RPG 프로그램은 현재 거의 또는 전혀 수정 없이 실행될 수 있습니다.
SQL 프리 컴파일러를 사용하면 현재 RPG 개발자가 IBM의 비용 기반 SQE(SQL Query Engine)를 활용할 수 있습니다.기존의 F-Spec 접근 방식을 사용하면 개발자는 데이터 세트에 대한 특정 액세스 경로를 식별해야 했습니다. 이제 표준 임베디드 SQL 문을 프로그램에 직접 구현할 수 있습니다.컴파일되면 SQL 프리 컴파일러는 SQL 문을 RPG 문으로 변환하여 최종적으로 쿼리 요청을 구현하는 데이터베이스 매니저 프로그램을 호출합니다.
RPG IV 언어는 EBCD를 기반으로 합니다.IC 문자 세트이지만 UTF-8, UTF-16 및 기타 많은 문자 세트도 지원합니다.이 언어의 스레드 세이프 측면은 RPG 런타임 환경을 다시 시작하는 것이 아니라 컴파일러 팀이 각 스레드에 자체 정적 스토리지를 제공함으로써 스레드에 대처했기 때문에 일부 사람들에 의해 특이하다고 여겨집니다.이는 스레드와 프로세스의 구별을 혼동하는 것으로 알려져 있습니다(RPG IV 스레드는 스레드와 프로세스 간의 일종의 하이브리드입니다).
2010년에 IBM은 Rational Open Access: RPG Edition이라고도 알려진 RPG Open Access를 출시했습니다.프로그래머가 새로운 I/O 핸들러를 정의할 수 있으므로 RPG가 기본적으로 [27]지원하지 않는 소스에서 데이터를 읽고 쓸 수 있습니다.
데이터형
RPG는 다음과 같은 데이터 유형을 지원합니다.
주의:
데이터 유형 열의 문자는 데이터 유형으로 지정된 열의 정의 사양에 인코딩된 문자입니다.비교하자면 변수의 정의가 자유 형식이고 정수 변수를 선언하기 위해 int 등의 키워드를 사용하는 C와 같은 언어에서는 RPG에서 변수가 고정 형식 정의 사양으로 정의됩니다.소스라인의 6열에 문자 D로 나타나는 정의 사양에서는 데이터 유형 문자가 40열에 인코딩됩니다.또, 데이터 타입의 문자가 생략되어 있는 경우, 즉 공백인 채로 두면, 디폴트는 소수점이 지정되어 있지 않은 경우는 A, 스탠드 얼롱 필드에 소수점이 지정되어 있는 경우는 P, 데이터 구조내에서 소수점이 지정되어 있는 경우는 S(ZONED)가 됩니다.
| data 타입 | 이름. | 길이 | 묘사 |
|---|---|---|---|
A | 영숫자 | 1~16,773,104 바이트(표준) 1~16,773,100 바이트(표준 길이) | 영숫자 |
B | 이진수 숫자 | 1 바이트 (8 비트) 2바이트(16비트) 4바이트(32비트) 8 바이트(64 비트) | 부호 있는 이진수 정수 |
C | UCS-2 문자 | 1~8,386,552 문자(표준) 1~8,386,550 문자(표준) | 16비트 UCS-2 문자(DBCS 또는 EGCS) |
D | 날짜. | 10 바이트 | 날짜: 년, 월, 일 |
F | 부동 소수점 숫자 | 4바이트(32비트) 8 바이트(64 비트) | 부호 있는 이진 부동 소수점 실수 |
G | 그래픽 문자 | 1~8,386,552 문자(표준) 1~8,386,550 문자(표준) | 16비트 그래픽스 문자(DBCS 또는 EGCS) |
I | 정수 숫자 | 1 바이트 (8 비트) 2바이트(16비트) 4바이트(32비트) 8 바이트(64 비트) | 부호 있는 이진수 정수 |
N | 문자 표시기 | 1 바이트 | '1' = TRUE '0' = FALSE |
O | 물건 | 사이즈 미공개 | 오브젝트 레퍼런스 |
P | 패킹된 10진수 숫자 | 1~63자리, 바이트당 2자리 플러스 기호 | 정수와 분수를 포함한 부호 있는 고정 소수점 10진수 |
S | 구분된 10진수 숫자 | 1~63자리, 바이트당 1자리 | 정수와 분수를 포함한 부호 있는 고정 소수점 10진수 |
T | 시간을 | 8 바이트 | 시간: 시, 분, 초 |
U | 정수 숫자 | 1 바이트 (8 비트) 2바이트(16비트) 4바이트(32비트) 8 바이트(64 비트) | 부호 없는 이진 정수 |
Z | 타임스탬프 | 26 바이트 | 날짜 및 시간: 년, 월, 일, 시, 분, 초, 마이크로초 |
* | 베이스 포인터 프로시저 포인터 시스템 포인터 | 16 바이트 | 데이터 주소 액티브한 프로시저의 주소 오브젝트 주소 |
코드 예시
다음 프로그램은 고객 번호를 입력 파라미터로 수신하고 출력 파라미터로 이름과 주소를 반환합니다.이것은 RPG IV 구문의 가장 원시적인 버전입니다.동일한 프로그램은 나중에 구문의 현대적 버전과 완화된 규칙을 사용하여 보여집니다.
*역사적으로 RPG는 본질적으로 컬럼형이었지만, 특정 상황에서는 프리포맷*이 허용되었습니다.* 다양한 라인 코드의 용도는 6열의 * 문자 코드에 의해 결정됩니다.* 7열의 별표(*)는 코멘트 라인 * "F" (파일) 사양이 정의되어 파일 및 기타 I/O 디바이스 F ARMTF1 IF E K 디스크 이름 변경(ARMST: RARMST) * "D" (데이터) 사양이 변수 정의에 사용됩니다.S 6p D pName S 30a D pAddr1 S 30a D pAddr2 S 30a D pCity S 25a D pState S 2a D pZip S 10a * "C" (계산) 사양은 실행 가능한 스테이트먼트에 사용됩니다 * Parameter는 plist 및 parm opcodes C *entry plist C parm pCusNo C parm pName C parm pAddr1 C parm pAddr2 C parm을 사용하여 정의됩니다.pCity C parm pState C parm pZip * "chain" 명령어는 키가 있는 파일 C pCusNo 체인 ARMstF1 * 레코드가 발견되면 파일에서 파라미터 C로 필드를 이동합니다.C eval pName = ARNm01 C eval pAddr1 = ARAd01 C eval pAddr2 = ARAd02 C eval pCity = ARCy01 C eval pState = ARSt01 C eval pZip = ARZp15 Cendif *RPG MPG스위치 사용.스위치 "LR"은 원래 "last record"의 약자 * LR은 프로그램과 해당 데이터 공간에 메모리 C eval *InLR = *On에서 분리 가능한 것으로 플래그를 지정합니다.
V5R1부터 무료 계산을 사용하는 동일한 프로그램:
* "F" (파일) 사양은 파일 및 기타 I/O 디바이스 FARMSTF1 IF E K 디스크 이름 변경 (ARMST:RAMST) * "D" (데이터) 사양은 변수 및 파라미터 정의에 사용됩니다 * 프로그램의 "프로토타입"은 다른 프로그램에서 복사/customer_pr.ce"는 *ENTRY 파라미터 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 // "chain" 명령어는 키 있는 파일체인 pCusNo ARMstF1의 랜덤 액세스에 사용됩니다.// 레코드가 발견되면 파일에서 파라미터로 필드를 이동합니다. pName = ARNm01; pAddr1 = ARAd01; pAddr2 = ARAd02; pCity pCity = ARAd01; ARC = PCity = ARC = ARC = ARC = ARC = ARC = ARC = ARCY = ARC = ARCY = ARC = ARC =ARSt01; pZip = ARZp15; endif; // RPG는 스위치를 사용합니다.스위치 "LR"은 원래 "last record" // LR의 약자로 프로그램 및 데이터 공간에 메모리에서 분리 가능한 플래그를 지정합니다.*InLR = *On; /end-free
다음 SQL 문을 사용하여 ARMSTF1 예제 테이블을 작성했다고 가정합니다.
만들다 테이블 암스트프1 (아크넘 십진수(7,0), 이름 차(30), aradd1 차(30), aradd2 차(30), 아아키 차(25), 아스트 차(2), 압축 차(10)) 무료 계산과 임베디드 SQL을 사용하는 동일한 프로그램:
* RPG IV는 더 이상 *INLR 표시기를 사용하여 프로그램을 종료할 필요가 없습니다.* "H" (Header) 사양에서 MAIN 키워드를 사용하고 "Main" 또는 * 엔트리 프로시저 이름을 지정함으로써 프로그램은 * 수십 년 전의 RPG 사이클을 사용하지 않고 정상적으로 시작 및 종료되며 대신 "Clike" 시작 및 종료 로직을 사용합니다.H MAIN(getCustInf) * "D"(데이터) 사양은 변수와 파라미터를 정의하기 위해 사용됩니다. * 프로그램의 "프로토타입"은 다른 프로그램에서 /copy cust_pr * "프로시저 인터페이스"는 *ENTRY 파라미터 P getCustInf B DGetCustInf PI PCus를 나타냅니다.o 6p 0 const D pName 30a D pAddr1 30a D pAddr2 30a D pCity 25a D pState 2a D pZip 10a / free exec select arName, arAddr1, arAdd2, arCity, arSte, arZip을 :pName, :pAddr1, :pAddr2, :pState, :pZip을 ARMstF1에서 가져옵니다.여기서 arCnum = :pCusNo는 첫 번째 행만 가져옵니다./end-free P GetCustinf는 CS가 있는 행에 대해서만 최적화됩니다.
운영 체제의 V7R1에서는 위의 프로그램이 반드시 별도의 파일에 프로토타입을 필요로 하지 않기 때문에 다음과 같이 완전히 작성될 수 있습니다.
H 주된(Get Cust Inf) D ARMSTF1 E DS P Get Cust Inf B D Get Cust Inf PI 외부('CUS001') D 입력 번호 맘에 들다(아크넘) 컨스턴트 D outName(이름) 맘에 들다(arName(이름)) D 주소 1보다 크다 맘에 들다(arAdd1) D 주소 2보다 크다 맘에 들다(arAdd2) D 시외 맘에 들다(ar시티) D 아웃스테이트 맘에 들다(표준) D 압축 해제 맘에 들다(arzip) /공짜 이그제큐티브 sql 선택한다. arName(이름), arAdd1, arAdd2, ar시티, 표준, arzip 안으로 :outName(이름), :주소 1보다 크다, :주소 2보다 크다, :시외, :아웃스테이트, :압축 해제 부터 ARMSTF1 어디에 아크넘 = :입력 번호 가지고 오다 첫번째 1 배를 젓다 오직. 와 함께 CS 사용하다 현재의 헌신적인; /끝.-공짜 P Get Cust Inf E 마지막으로 컴파일러 PTF 관련 테크놀로지 리프레시 7(TR7)을 7.1 운영체제에 적용하면 위의 프로그램을 다음과 같이 자유 형식으로 완전히 코드화할 수 있습니다.
ctl-옵트 주된(Get Cust Inf); DCL-ds ARMSTF1 익스텐트 끝.-ds; DCL-프로세서 Get Cust Inf; DCL-파이 *n 외부('CUS001'); 입력 번호 맘에 들다(아크넘) 컨스턴트; outName(이름) 맘에 들다(arName(이름)); 주소 1보다 크다 맘에 들다(arAdd1); 주소 2보다 크다 맘에 들다(arAdd2); 시외 맘에 들다(ar시티); 아웃스테이트 맘에 들다(표준); 압축 해제 맘에 들다(arzip); 끝.-파이; 이그제큐티브 sql 선택한다. arName(이름), arAdd1, arAdd2, ar시티, 표준, arzip 안으로 :outName(이름), :주소 1보다 크다, :주소 2보다 크다, :시외, :아웃스테이트, :압축 해제 부터 ARMSTF1 어디에 아크넘 = :입력 번호 가지고 오다 첫번째 1 배를 젓다 오직. 와 함께 CS 사용하다 현재의 헌신적인; 돌아가다; 끝.-프로세서; 「 」를 참조해 주세요.
레퍼런스
- ^ "RPG ILE Introduction". IBM. Retrieved 2021-03-16.
- ^ Tony Baritz; David Dunne (1991). AS/400--concepts and Facilities. McGraw-Hill. ISBN 978-0-07-018301-8.
- ^ Alex Woodie (2020-08-24). "Is It Time To Rename RPG?". itjungle.com. Retrieved 2021-03-16.
- ^ "IBM DOS/VS RPG-II". IBM. 2020-08-03. Retrieved 2021-03-17.
- ^ "Supported product list". IBM. 2021-03-16. Retrieved 2021-03-17.
- ^ "ClearPath MCP Express" (PDF). Unisys. 2017. Retrieved 2021-03-17.
- ^ "Visual RPG for .NET". asna.com. ASNA. Retrieved 3 April 2022.
- ^ "Migration RPG". migrationspecialties.com. Retrieved 2021-03-17.
- ^ "...IBM 1401 및 Report Program Generator(RPG)는 이러한 성공에 크게 기여했습니다...", IBM 1401 Data Processing System / 1959
- ^ 하지만 여기에 언급된 1959년이 아니라 1965년이라고 쓰여 있어요.
- ^ "CEERAN0 API를 사용한 ILE RPG의 난수 생성", IBM.com
- ^ "어떻게 우리가 RPG IV의 성년을 놓쳤을까?" ibmsystemsmag.com
- ^ "RPG/400". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ "ILE RPG Reference". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ "ILE RPG Programmer's Guide". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ "Who Should Use This Guide". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ "High Level Languages". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ Paris, Jon; Gantner, Susan. "Totally Free RPG". IBM Systems Magazine. Retrieved 8 March 2014.
- ^ "IBM Rational Developer for i". IBM.com. International Business Machines Corporation. Retrieved 3 April 2022.
- ^ "5770-WDS IBM Rational Development Studio for i V7.4". IBM.com. International Business Machines Corporation. Retrieved 3 April 2022.
- ^ "5770-WDS IBM Rational Development Studio for i V7.4". IBM.com. International Business Machines Corporation. Retrieved 4 April 2022.
- ^ IBM. "RPG Cafe". IBM.com. International Business Machines Corporation. Retrieved 3 April 2022.
- ^ IBM. "IBM i Technology Updates". IBM.com. International Business Machines Corporation. Retrieved 3 April 2022.
- ^ IBM. "IBM i Technology Refresh". IBM.com. International Business Machines Corporation. Retrieved 3 April 2022.
- ^ "RPG/400 User's Guide" (PDF). Ibm.com. Retrieved 6 August 2017.
- ^ "EASY400 CGIDEV2". Easy400.net. Retrieved 26 March 2019.
- ^ "Rational Open Access: RPG Edition". IBM. Retrieved 2021-03-17.
추가 정보
- "9PAC, Report Generator". History of Programming Languages (HOPL), Murdoch University, AU. 2006. Archived from the original on 2010-12-24. Retrieved 2008-04-01.
- "RPG, Report Program Generator". History of Programming Languages (HOPL), Murdoch University, AU. 2006. Archived from the original on 2011-04-15. Retrieved 2008-04-01.
- DuCharme, Bob (2006-02-26). "Pulling data out of computers in the mid-twentieth and early twenty-first centuries".
- Cozzi, Robert (1996). "The Modern RPG IV Language".
- Shelly, Gary B.; Thomas J. Cashman (1977). Introduction to Computer Programming RPG. Fullerton, California: Anaheim Publishing Company. ISBN 0-88236-225-9.
외부 링크
- 스미스, 브라이언은 R.;마틴 돌잉어, 수잔 Gantner, 존 파리;Zdravko Vincetic. 블라디미르 Zupka(4월 25일 2000년)."넌 누구 RPG4절에 할 수 있다는 것도?한 마법사의 가이드 시스템 접속 및 More"(PDF).IBM국제 기술 지원 기구다.2012-02-18 Retrieved."이 redbook RPG4세에 21세기를 향한 번성하고 부자인 현대 응용 개발 언어로 초점을 맞추고 있다.".
- Midrange.com - 다수의 코드 예를 여기에서 볼 수 있습니다.
- RPGM.COM - RPG 코드 및 관련 프로그래밍의 예를 제공하는 광범위한 기사 리소스
- RPG Open - RPG IV 및 IBM i 애플리케이션 개발을 위한 무료(오픈 소스) 리소스입니다.
- IBM (1964). IBM 1401 RPG manual (PDF). C24-3261-1.
- IBM (2016). ILE RPG Programmer's Guide (PDF). SC09-2507-10.
- MVS, OS/390 및 z/OS용 RPG II — IBM RPG II 제품 상태(z/OS)
- 오래된 타이머용 - 소규모 실험 및 손질을 위한 온라인 RPG I 컴파일러
- [1] rpg 프로그래머
- 초보자를 위한 RPGLE 튜토리얼 - AS400i.com