新闻资讯
看你所看,想你所想

RPG语言

RPG语言

RPG语言

RPG是用于商业应用程式的高级程式语言。RPG是IBM专有的程式语言,其更高版本仅适用于基于IBMi或OS/400的系统。它有着悠久的历史,由IBM于1959年开发的报告程式生成器,一种在IBM1401上複製穿孔卡处理的工具,然后在20世纪60年代末更新为用于IBMSystem/3的RPGII,以及自从演变成相当于COBOL和PL/I的HLL。它仍然是IBMi作业系统上流行的程式语言,它在IBMPower平台硬体上运行。当前版本RPGIV(又名ILERPG)提供了一个现代化的编程环境。

基本介绍

  • 中文名:RPG语言
  • 外文名:REPORT PROGRAM GENERATOR
  • 属性:IBM的AS/400小型机上的高级语言
  • 起始:非常简单的面向事务处编程语
  • 开发公司:IBM

简介

RPG程式通常从档案规範开始,列出所有正在写入,读取或更新的档案,然后是包含程式元素(如数据结构和维数组的数据定义规範,非常类似于“工作-存储”部分COBOL程式或Pascal中的“var”语句。其次是计算规範,其中包含可执行指令。随后可以使用输出规範来确定其他档案或报告的布局。另外档案,一些数据结构和报告可以在外部定义,大多数情况下不需要手动输入和输出(“I/O”)规格。
在RPG的早期,它的主要优势被称为程式循环:每个RPG程式都在一个隐含的循环中执行,它可以将程式套用于档案的每个记录。那时每条记录(个人沖卡)将与程式中的每一行进行比较,根据该行是否有“指示”变为“开”或“关”-根据记录採取行动一组用于用户定义目的的编号为01-99的逻辑变数,或基于记录,现场或报告处理功能的其他较小组。关卡和匹配记录的概念对于RPGII语言来说是独立的,最初是以读卡器为基础开发的。

历史

RPG是非常普遍使用的沖卡机创造的少数几种语言之一。这是因为随着时间的推移,语言已经发生了很大变化。它最初是由IBM于1959年开发的。报告程式生成器的名称描述了该语言的用途:从数据档案生成报告,包括匹配记录和小计报告。
FARGO(14-O-1自动生成报告操作)是IBM1401RPG的前身。这两种语言都旨在帮助IBM制表机(Tab)单位记录设备技术人员轻鬆过渡到新计算机。
标籤机器技术人员习惯于将电线插入控制台以实现输入,输出,控制和计数器操作(加,减,乘,除)。Tab机器程式通过在机器周期中发出的冲动来执行;因此,FARGO和RPG通过程式循环模拟了机器周期的概念。RPG优于并迅速取代FARGO作为报告生成程式的选择。
当时通常可用的替代语言是彙编器,COBOL或FORTRAN。COBOL是一种自然语言的商业导向语言,FORTRAN是一种促进数学套用的语言。该时代的其他语言包括ALGOL和Autocoder以及几年后的PL/I。彙编和COBOL在大型机业务运营(System/360model30或更高版本)和更常用于从制表设备(System/360model20)转换的客户使用的RPG中比较常见。

发展

RPGII是随System/3系列计算机推出的。它随后在System/32,System/34和System/36上使用,并且具有改进的语言版本。RPGII还可用于大型系统,包括运行DOS/VSE(然后是VSE/SP,VSE/ESA和z/VSE)的IBMSystem/370主机。ICL还在其VME/K作业系统上生成了一个版本。
RPGIII是为System/38及其后续AS/400创建的。RPGIII显着偏离了原始语言,提供了像IF-ENDIF块,DO循环和子程式(RPG2支持子程式)这样的现代结构化构造。RPGIII还可用于大型系统,包括运行O/VS1的IBMSystem/370主机。Unisys也可以在UNIVAC系列90主机上运行VS/9作业系统。
DE/RPG或数据输入RPG在80年代初在IBM5280系列数据输入工作站上独家提供。它与RPGIII类似,但缺乏外部数据描述(DDS)来描述System/38及其后续产品上的数据(档案)。相反,DDS部分必须包含在RPG源中。
RP/400实际上是在AS/400上运行的RPGIII。IBM将RPG编译器重命名为“RPG/400”,但在引入时它与System/38上的RPGIII编译器相同。几乎所有的IBM产品都改名为xxx/400,RPG编译器也不例外。RPGIII使用RPG/400编译器进行编译,对于RPGIII语言并没有什幺新意,直到IBM在几年的AS/400可用性之后开始开发新的操作代码(如SCAN,CAT和XLATE)为止。RPGIII的这些增强功能在System/38版本的RPGIII中不可用。

RPG IV

作为OS/400的v3r2版本的一部分,RPGIV(又名RPGLE或ILERPG)于1994年发布。随着RPGIV的发布,RPG名称正式不再是初始化。RPGIV在ExtendedFactor-2计算规範中提供了更多种表达方式,并且在后来的版本中提供了自由格式的计算规範和过程语法。RPGIV是IBM在其AS/400系统(i系列,Systemi等)系列产品的后续产品系列中独立支持的RPG版本。
在2001年,随着OS/400V5R1的发布,RPGIV提供了比扩展因子-2计算规範提供的计算更大的自由度:一种自由格式的文本输入源,作为原始列依赖源格式。“/FREE”计算不需要将操作代码放置在特定列中;对于EVAL和CALLP操作,操作代码是可选的;而且语法通常更接近于主流的通用程式语言。直到2013年11月,专用于计算规範的自由格式。随着IBMiV7R1TR7升级到该语言,“/free”和“/end-free”计算不再是必需的,并且该语言最终打破了与打孔卡片的关係。
RPGIV是一种更强大的语言。虽然仍然可以通过SEU完成编辑,但是简单的绿色萤幕编辑器(即使从IBMiV7R1开始引入的功能不支持语法检查),随着时间的推移,开发了一系列工具。其中一些包括由IBM开发的Code/400和RPG视觉时代。首选的编辑平台是IBM的WebsphereDevelopmentStudio客户端(WDSc),当前命名为RDi(RationalDeveloperfori),它是Eclipse的自定义实现。Eclipse和RDi主要运行在个人电脑和其他设备上。IBM不断扩展其功能并添加更多内置功能(BIF)。它能够连结到Java对象,和i5/OSAPI;它可以在IBM的Cgidev2web工具包,CozzicozTools(用于RPGIV的RPG和CGI例程集合),CGILIB,RPGToolbox以及其他商用的基于Web的软体包的帮助下用于编写CGI程式。即使有了这些变化,它仍然保留了大量的向后兼容性,所以37年前编写的RPG程式可以运行很少或根本没有修改。
SQL预编译器允许当前的RPG开发人员利用IBM基于成本的SQE(SQL查询引擎)。使用传统的F-Spec方法,开发人员必须确定数据集的特定访问路径,当前他们可以直接在程式中实现标準的嵌入式SQL语句。编译时,SQL预编译器将无效的嵌入式SQL语句转换为有效的RPG语句,这些语句调用最终实现查询请求的资料库管理器程式。
2006年,OS/400更名为i/OS,以符合新的IBMSystemi5品牌计画;5后来被放弃了,只是系统i。2008年3月,i5/OS更名为IBMi,作为Systemi和Systemp产品线的PowerSystems整合的一部分。新的PowerSystems也採用更主流的版本号,用二十一岁的V1R1M0符号代替6.1。最新版本当前称为IBMi7.3,完全支持RPGIV语言以及其他许多语言。
RPGIV语言基于EBCDIC字元集,但也支持UTF-8,UTF-16和许多其他字元集。由于编译器团队已经通过为每个执行绪提供自己的静态存储来处理执行绪,而不是使RPG运行时环境重新进入,因此某些语言的执行绪安全方面被某些人认为是特殊的。这已被注意到混淆了执行绪和进程之间的区别(使得RPGIV执行绪成为执行绪和进程之间的一种混合)。

RPG开源

在2010年推出了Rational开放访问:RPGEdition。
IBMi首席架构师SteveWill将其描述为“一种增强,它实际上是一种架构变革,可以打开RPG以实现全新的用途,IBMi,IBMRational的朋友以及多家ISV将其引入社区他们一直在与IBM合作开展工作,这种新功能背后的想法是消除了RPG程式的所有输出被迫进入有限的5250数据流的必要性,相反,它可以传递给处理程式,可以用任何处理程式想要的方式来转换它,把它换成XML格式;把它放在普及设备所需的格式中;製作一个看起来不像5250萤幕的网页;任何你想要的东西。“
儘管许多公司对OpenAccess的实用性持怀疑态度,但它已经获得了包括ProfoundLogic公司在内的其他公司的直接认可,并迅速将其纳入旨在打开我的产品中,并聘请了以产品开发人员ScottKlement开放原始码工具来访问该技术。

平台

RPG程式语言最初是由IBM为其专有的1401,/360,/3,/32,/34,/36,/38AS/400和Systemi系统推出的。数字VAX,SperryUnivacBC/7,Univac系统80,西门子BS2000,BurroughsB700,B1700,HewlettPackardHP3000,ICL2900系列,霍尼韦尔6220和2020,四相IV/70和IV/90系列,SingerSystem10和WANGVS,以及用于基于Unix的系统(如Infinite36(以前称为Unibol36))和PC(Baby/400,Lattice-RPG)的各种编译器和运行时环境。
通过2013年3月由I-NetSystemSolutions购买的WINRPG编译器,接收RPG编译器的最新平台是Windows.Net。该版本包含对基本IBM编译器以外的RPGIV的扩展。这些扩展在Native和System/36环境中提供了MicrosoftWindows和.NET挂鈎,以及通过ODBC将DB/2档案移植到MicrosoftAccess和MicrosoftSQLServer资料库的功能。
RPGII应用程式在IBMz/VSE和z/OS作业系统,HP3000上的HPMPE作业系统和VAX,Alpha和UnisysMCP上的OpenVMS作业系统以及当前的I-NetRPG下的Windows伺服器和桌面上仍受支持。

转载请注明出处海之美文 » RPG语言

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:ailianmeng11@163.com