paint-brush
IBM’s proprietary RPG programming language: An Overviewby@rpgprogrammer
446 reads
446 reads

IBM’s proprietary RPG programming language: An Overview

by Saurabh KumawatFebruary 21st, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

The Report Program Generator (or RPG for short) is a high-level programming language. It is an IBM proprietary programming module and can only be accessed on IBM i- or OS/400-based systems. RPG is still a popular programming language on the IBMi operating system. RPG IV (also known as ILE RPG) is the most current version of RPG and it is a tool that provides a highly enabling programming environment for AS400 RPG Programmers. RPG has been the most reliable language for commercial applications.

Company Mentioned

Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - IBM’s proprietary RPG programming language: An Overview
Saurabh Kumawat HackerNoon profile picture

The Report Program Generator (or RPG for short) is a high-level programming language serves a wide array of business applications and uses. It is an IBM proprietary programming module and a vast majority of its later versions can only be accessed on IBM i- or OS/400-based systems.

RPG actually has quite a long history. It was developed by the tech giant IBM in 1959 as the Report Program Generator- a tool that was developed to serve as an alternative for the punch card processing system on the IBM 1401. However, it was subsequently updated to the RPG II following the development of the IBM System/3 in the 1960s. It has since evolved into the high-level language equivalent of COBOL and PL/I.

To this day, RPG is still a very popular programming language on the IBMi operating system. RPG IV (also known as ILE RPG) is the most current version of RPG and it is a tool that provides a highly enabling programming environment for AS400 RPG Programmers.

When RPG was first developed, the major stronghold that it had was known as the program cycle. Every RPG program executes programs within a hypothetical loop. This loop is able to apply the same program to every file on record. At that time, there will be a comparison between each record and every line in the program. Every line has the choice to either act on the record or not, based on whether that line has an indicator turned on or off. The entire idea of level breaks and matching records is one that is unique to the RPG II language.

Ever since System/38 was introduced in 1979, the majority of RPG programmers stopped making use of the cycle and rather opted for the controlling program flow which has standard looping constructs. However, IBM has also continued to provide backward compatibility for the cycle.

IBM i RPG Programmers

IBM iSeries programmers (or AS400 RPG Programmers, if you will) are specially trained professionals who are trained to use the RPG programming language to manipulate and solve issues. RPG programmers are usually employed by IBM i Application Development Companies to create codes that can be integrated into business operations in order to ensure a higher level of efficiency.

On any particular day, an RPG programmer can work on a wide array of tasks, ranging from creating new codes to ensuring the proper maintenance of existing program codes (although existing codes might be written in versions of the RPG code that look slightly different). If you’re looking to hire an RPG Programmer, they can help you with any of the following:

  • Analysis, designing, development and maintenance of the IBM i software written in a wide array of languages, including RPG, RPG ILE, RPG-FREE, and SQL.
  • Following various functional specifications in order to create technical documentation and develop pseudo codes.
  • Either create new RPG programs or strengthen existing ones.
  • In the case of any issues, he can also troubleshoot your business processes to diagnose where the issues are.
  • He also debugs any existing software to locate and solve issues.
  •  Implement new codes and bug fixes into the existing software.

RPG has a long history…

As RPG has been the most reliable language for commercial applications, many updates and versions have helped the IBM i programmers to code easily.

RPG II: After RPG, RPG II rolled with more updates and modifications so that it can be easily run on the smallest IBM systems of that time. These included- IBM 1130, IBM system3, system34 and system36. Later it was also used on bigger systems like system370. The most interesting aspect of RPG II is that it is a fixed format programming language, each and every code should be placed in the respective column in order to generate the right output.

RPGIII: Next in the line is RPG III which was developed for System38 and other bigger systems. RPGIII was more enhanced and could support new structures like IF END IF, DO loops and subroutines. It was available for the larger systems like IBM system370 with OS VS1.

RPGIV/RPGLE: RPGIV was developed in 1994 with and has a lot of enhancements over RPGIII like:

  • Longer field names
  • Source level debugging
  • Date and time support
  • Additional data types (floating point, boolean, pointers)
  • Free-format expressions
  • Built in functions
  • Case tolerance

One of the great features of RPGIV is that it is ILE compliant. This means that the programmers have a vast number of functional, performance, maintenance, and productivity benefits apart from the ability to integrate multiple languages.

RPG5 is a free version of ILE format from IBM i V5 and RPG6 from IBM i V6.

RPG7: RPG 7 is the latest version of RPG programming language and is widely used industry wide. It is a fully free format from IBM i V7.

RPG Open Access Handler

A handler in any programming language is an event or function created for a certain task. RPG open access handler is an interface or method which handles the communication with the available resources and devices.  Rational open access is a way for RPG programmers to use the RPG I/O model to easily utilize the resources and devices that are not directly supported by RPG.

This Open Access provides RPG’s file I/O capabilities, allowing anyone to write innovative I/O handlers to access other devices.

Platforms on which RPG rolled out-

As we all know the initial versions of RPG were developed for IBM systems like 1401, /360, /3, /32, /34, /36, /38 AS/400 and System i systems. Later on it was enhanced and implemented for Sperry Univac BC/7, the Digital VAX, Siemens BS2000, Univac system 80, Burroughs B700, B1700 and many more. The latest platform developed for RPG compiler is Windows .Net through the WINRPG compiler.

Conclusion

RPG has a long history, initially developed as a report program generator today this language is counted in one of the finest high level languages like COBOL and PL/I. Having so many versions it has created confusions sometimes but has evolved quite rapidly as compared to any other language. Many organizations which are based on IBM i rely on the latest versions of RPG (Stable: RPG IV version 7 ) to enhance and develop new solutions every now and then.