. See http://en.wikipedia.org/wiki/Report_program_generator
for historical references. Roots in a 1959 project, with first major official release 1961 on IBM 7070/7074 (contrary to common claims that it first appeared in 1964 on the IBM/360) Encyclopedia of computer languages, http://hopl.murdoch.edu.au/showlanguage2.prx?exp=207
I am glad that IBM has brought RPG out of the Stone Age and put it squarely into the Bronze Age.
(Eric N. Wilson, RPG programmer, on http://archive.midrange.com/openerp400/200002/msg00233.html
RPG (aka RPGLE) code is an InternationalBusinessMachines
language that runs on the OS/400 operating system. OS/400 runs on several proprietary systems, such as IseriesHardware
. RPG is optimized for high speed database record and field level manipulation. RPG is presently going through modernization that allows for some of the same functionality as some other languages like VbClassic
and some concepts from JavaLanguage
(which is also being used on the iSeries).
RPG has added a free format as well as moved to subProcedures which are much like functions in other languages---, although they don't have to return a value---. A lot of additional features of other languages have been added to RpgLanguage
by providing calls into the libraries of those other languages. Much has been linked into the C libraries to provide SocketFunctions?
, RPC, FlatFile?
, and other more advanced topics.
RPG has also been enhanced by given access to memory pointers, a method to invoke/declare Java objects in RPG, Machine Interface (MI) instructions, and call across to C methods.
(as found on ChipMorningstar?
's site, of all places.)
The original RPG (often referred to as RPG III) was very ugly indeed. The names of variables could only be 6 characters long and the column-oriented nature of the language was all pressed together so it was very hard to read. Date? I recall RPG from the early seventies (running on an IBM mainframe), and I don't think it was known as anything else at that time.
(Only RPG II runs on the mainframe.) Like many other languages of its day, RPG was often touted as "self documenting". FOR THOSE WHO CONSDR SIX CHRCTR VARBLE NAMES SFFCNT, I GUESS RPG WAS SELF DCMNTG.
RPG III existed on the System/38, long before the AS/400. The original RPG on the AS/400 was called RPG400.
The IBM System/3 introduced RPG II in September, 1969. Prior to this date, System/360 model 20 RPG and then IBM 1130 RPG were the most advanced forms of the language, allowing very limited exceptions to the fixed accounting-machine logic cycle on which it was based (and which was so eminently suitable for the file match and merge processing of the day). The System/34 and System/36 also used RPG II, but with workstation extensions. There also existed a market for pre-compilers that added RPG III functionality to RPG II, some of it by simplifying access to existing features and some of it by adding assembly language subroutine calls; the most popular of these were a product called (I think) 400/RPG from ASNA software, and RPG II-1/2 from (I think) BPS software.
The first widely available free-format RPG C-specs were a pre-compiler called RPG/free. Developed by Picante software, it was published and released for free by News/3x-400 magazine (also known as News/34-38, News/400, and iSeriesNews; it is now SystemiNews?
). Versions of RPG/free existed for S/36, S/38, AS/400, and PC based development, and produced RPG II, RPG III, or RPG/400 code. This looks a lot like C, minus some of the required file declarations and working variable definitions that must be coded in the old column-oriented style. Some calculations (aka C-Specs) have not been ported over to free format and they also must be coded in column style.
Another feature on the iSeries was the port of SQL. As of V5R2, DB2 & iSeries has approximately 90% compliance with the SQL92 standard.
[Remembering that this is not 100% trustable, google it for doubhs]