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 IV,RPG開源,平台,

簡介

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伺服器和桌面上仍受支持。

相關詞條

熱門詞條

聯絡我們