IBM iのRPG開発現場では、いまだにRPG3(固定形式)を使い続けている企業が少なくありません。その背景には「移行の必要性を感じない」「今のままで業務が回っている」という事情がありますが、一方でRPG技術者の高齢化や採用難という課題は徐々に顕在化しています。固定形式の独自構文はRPG4への移行を検討する際のハードルになりがちですが、実はRPG4のフリーフォーマットを使えば、この課題は大きく緩和できます。本記事では、RPG3とRPG4の違い、フリーフォーマットで何が変わるのか、そして移行の具体的な方法までをわかりやすく解説します。
対象読者
- IBM i環境のシステム運用や保守を担当している方
- RPG3からRPG4への移行を検討しているIT部門の責任者
- レガシーシステムのモダナイゼーションに関心がある方
課題
- RPG3の開発者が高齢化し、後継者不足に悩んでいる
- 固定形式のプログラムが若手エンジニアにとって学習しづらい
- RPG4へのコンバージョン手順や具体的なメリットが明確でない
この記事で分かること
- RPG3とRPG4(ILE RPG)の具体的な機能の違い
- フリーフォーマットRPGを採用するメリットと人材獲得への効果
- RPG3からRPG4への具体的なコンバージョン方法と注意点
IBM iで稼働するRPG3とRPG4の違いとは?
IBM i(AS/400)の基幹業務システムでは、今なおRPG3と呼ばれる古い形式のプログラムが数多く稼働しています。まずは、RPG3とRPG4がそれぞれどのようなものか、基本から整理しましょう。
| 比較項目 | RPG3 | RPG4(ILE RPG) |
|---|---|---|
| 記述形式 | 固定形式 | 固定形式およびフリーフォーマット |
| 変数名の長さ | 6文字程度 | 大幅に拡張 |
| 処理の構造化 | サブルーチン | プロシージャ(関数) |
RPG3(固定形式)の主な特徴
RPG3は、System/38やAS/400の時代から使われてきた固定形式(フィックスドフォーマット)のRPGです。プログラムの1行1行が、決められた桁位置ごとに項目を記述するルールになっており、変数名や演算子の書式が厳格に決まっています。
この書き方は、パンチカードで処理が行われていた時代の名残ともいえます。桁位置さえ守れば誰が書いても同じ体裁になるという利点がある一方で、1行に書ける情報量が少なく、変数名も6文字程度までしか使えないなど、現代の開発言語と比べると制約の多い仕様となっています。
たとえば在庫管理や受発注処理のような基幹プログラムの場合、1本のソースが数百行から数千行に及ぶことも珍しくありません。桁位置のルールに縛られた記述スタイルでは、こうした長大なプログラムほどどこで何をしているかを目で追うだけでも一苦労となります。改修のたびに、まず既存コードの読み解きに時間がかかってしまうという声は、RPG3資産を抱える現場でよく聞かれます。
RPG4(ILE RPG)の特徴
RPG4は正式にはILE RPG(Integrated Language Environment RPG)と呼ばれ、1990年代に登場した新しい世代のRPGです。当初は固定形式の書き方を踏襲していましたが、その後のバージョンアップで大幅に機能が拡張され、フリーフォーマット(自由形式)の記述にも対応できるようになりました。
RPG4は、C言語やJavaなど他のモダンな言語に近い感覚でプログラムを書くことができ、長い変数名や関数(プロシージャ)を使った構造化プログラミングが可能です。IBM iを今後も長く使い続けるうえで、事実上の標準形式になっていると言ってよいでしょう。
現在のIBM iではILE RPG(RPG IV)が主要なRPG開発環境となっています。つまり、新しくIBM i上でプログラムを開発する場合、意識せずともRPG4の仕組みの上で開発できることになります。RPG3で書かれた古いプログラムとRPG4で書かれた新しいプログラムが、同じIBM iのサーバー上に混在しているケースが非常に多いというのが実態です。
なぜ今でもRPG3を使う企業が多いのか?
ここまで読むと、それならRPG4に統一すればよいのではと思われるかもしれません。しかし実際には、RPG3で書かれた基幹プログラムが今も現役で動き続けている企業が少なくありません。
理由の多くは、動いているものは触りたくないという現場の判断です。長年トラブルなく稼働してきたプログラムに手を入れるのはリスクが伴いますし、書き換えには相応の工数とコストがかかります。加えて、RPG3を読み書きできる担当者が特定の社員に偏っており、その人に聞かないとわからないという属人化が進んでいるケースも多く見られます。IPA(独立行政法人情報処理推進機構)の調査などでも指摘されているとおり、レガシーシステムのブラックボックス化は多くの企業で共通の課題となっています。結果として、移行の必要性は感じつつも着手できないまま何年も経過しているのが実情に近いのではないでしょうか。
さらに、担当者の退職や異動をきっかけに、初めてこのプログラムを触れる人が社内にいないという事実に気づく展開も少なくありません。日頃は問題なく動いているシステムほど、いざ改修や障害対応が必要になったときに、対応できる人材の不在が一気に表面化します。RPG3資産をそのままにしておくことは、目先のコストを抑えられる一方で、将来的な保守リスクを先送りしている状態だといえます。
RPG4への移行で拡張された3つの主な機能

RPG4への移行で拡張された3つの主な機能について解説します。RPG3(固定形式)からRPG4(ILE RPG)への移行に伴い、開発効率や保守性を飛躍的に高めるさまざまな機能を利用できます。
変数名の文字数拡張によるメリット
変数名の文字数拡張によるメリットは、プログラムの可読性が大幅に向上することです。RPG3では変数名(フィールド名)に使用できる文字数が6文字までに制限されていました。そのため、意味が推測しにくい省略名を付けざるを得ず、プログラムの意図を読み取りにくいという課題がありました。
RPG4への移行後は、変数名に最大4096文字まで使用できます。これにより、業務内容を正確に反映した名前を付けられます。名前を見ただけで処理内容が推測しやすくなるため、保守性の向上に直結する変化だといえます。
| バージョン | 変数名の最大文字数 | 命名の具体例 |
|---|---|---|
| RPG3 | 6文字 | ZAIKO1 |
| RPG4 | 4096文字 | zaikoSuryo |
意味の通る変数名を使用できれば、コード自体がドキュメントの役割を果たしてくれます。引き継ぎ資料が十分に整備されていない現場でも、新しい担当者がプログラムの仕様を理解しやすくなる効果を期待できます。
関数(プロシージャ)の利用
関数(プロシージャ)の利用も、RPG4で追加された重要な機能の一つです。RPG3にはサブルーチンという処理をまとめる仕組みがありました。しかし、呼び出し方や引数の扱いに制約が多く、大規模なプログラムになるほど処理の流れを追いにくくなる傾向がありました。
RPG4ではプロシージャと呼ばれる関数的な仕組みを利用できます。決まった処理を部品化して、引数を渡したり戻り値を受け取ったりできます。共通処理を一箇所にまとめられるため、修正が必要になったときも影響範囲を把握しやすく、テストも容易に実行できます。
たとえば消費税額を計算する処理や、郵便番号から住所を検索する処理のように、複数のプログラムで共通して使うロジックをプロシージャとして一箇所にまとめられます。税率が変わった場合の改修も一箇所を直すだけで完了できます。同じ処理を複数のプログラムにコピーする運用から脱却できるため、修正漏れのリスクを大きく減らせます。
フリーフォーマットの採用
RPG IVへの移行で、開発者が特に変化を実感しやすいのがフリーフォーマットです。RPG3では、プログラムの1行ごとに決められた桁位置(カラム)に項目を記述する厳格なルールがありました。RPG IVでは固定形式に加えて、フリーフォーマットでロジックを記述できます。
IF文やFOR文といった制御構文も、他のモダンなプログラミング言語に近い書き方で表現できます。インデント(字下げ)を使って処理の階層構造を表現できるため、どの条件分岐の中でどの処理が行われているかを視覚的に把握できます。
処理のロジックそのものに集中して開発を進められるため、フリーフォーマット部分では、固定形式で必要だった桁位置を意識した記述から解放されます。結果として同じ処理でも記述量が少なくなり、コードの見通しがよくなる傾向があります。
※「IBM i」は、International Business Machines Corporationの米国およびその他の国における商標または登録商標です。
フリーフォーマットRPGとは?固定形式との違い

フリーフォーマットRPGとは、その名のとおり桁位置の制約なしに、自由な位置からコードを記述できます。IF文やFOR文といった制御構文も、C言語やJavaに近い書き方で表現できます。そのため、見た目のわかりやすさが大きく向上する仕様です。
固定形式との最大の違いは「読みやすさ」です。固定形式では、演算の内容の前に「この桁に何を書くべきか」を意識する必要がありましたが、フリーフォーマットでは処理のロジックそのものに集中できます。結果として、同じ処理でも記述量が少なくなり、コードの見通しがよくなる傾向があります。
インデント(字下げ)を使って処理の階層構造を表現できます。これも、フリーフォーマットならではの特徴です。「どの条件分岐の中で、どの処理が行われているか」を視覚的に把握しやすくなります。他の担当者が書いたプログラムを引き継ぐ際の負担も軽減できるのが利点です。長年RPG3に慣れ親しんだベテラン社員にとっては書き方の変化に戸惑う部分もあるかもしれませんが、一度慣れてしまえば、固定形式には戻れないという声も少なくありません。
| 比較項目 | 固定形式(RPG3など) | フリーフォーマット(RPG4) |
|---|---|---|
| 記述位置 | 厳格な桁位置のルールがある | 自由な位置から記述できる |
| コードの可読性 | 桁位置を意識する必要があり読みにくい | インデントを活用でき視覚的にわかりやすい |
|
他言語との類似性 |
独自の作法が強い | C言語やJavaなどのモダンな言語に近い |
フリーフォーマットが解決する人材採用のハードル
フリーフォーマットが解決する人材採用のハードルについて解説します。フリーフォーマットRPGへの移行は、単なる書き方の変更にとどまりません。IBM i技術者の採用や育成という、多くの企業が抱える課題への対応策にもなります。
固定形式のRPG3は、桁位置のルールなど独特の作法を覚える必要があり、他言語の経験者であっても習得のハードルが高いと感じられがちです。これが「IBM i人材はなかなか採用できない」と言われる一因にもなっています。一方、フリーフォーマットで書かれたコードは、モダンな言語の経験があるエンジニアにとっても格段に読みやすく、採用市場でのハードルを下げる効果が期待できます。
求人媒体で「RPG経験者募集」と掲載しても、応募者が集まりにくいという相談は情報システム部門からよく寄せられます。応募者側からすると、「見たことのない独特な書式を今から覚えなければならない」という印象を持たれやすく、他の言語のポジションと比較されて選ばれない、という事態が起こりがちです。フリーフォーマットへの移行は、この「見た目のとっつきにくさ」を取り除く意味でも、採用活動に前向きな影響を与える可能性があります。
若手エンジニアが習得しやすい理由とは?
若手エンジニアが習得しやすい理由とは、大学や前職でJavaやPython、C系言語に触れてきている背景があるからです。フリーフォーマットRPGはこうした言語と構文の考え方が近いため、「桁位置の暗記」から入る必要がなく、処理の意味を理解しながら学習を進められます。
社内でIBM i技術の継承を進めたい企業にとって、フリーフォーマットへの移行は、次の世代に技術をバトンタッチしやすい環境を整える取り組みでもあります。
加えて、社内研修という観点でも効果が見込めます。RPG3のみで教育を行おうとすると、まず桁位置のルールという「今どき珍しい書き方」の説明から始めなければならず、若手社員のモチベーションを削いでしまうことがあります。フリーフォーマットであれば、他の言語学習の延長として自然に説明でき、教育担当者の負担軽減にもつながるでしょう。
※「IBM i」はInternational Business Machines Corporationの登録商標または商標です。
IBM i上でRPG3からRPG4へコンバージョンする方法

IBM i上でRPG3からRPG4へコンバージョンする方法について解説します。IBM iには、RPG3(RPG/38やRPG/400形式のソース)をRPG4形式のソースに変換するための標準コマンドが用意されています。代表的なものが「CVTRPGSRC(Convert RPG Source)」コマンドであり、これを使うことで、RPG3のソースコードを機械的にRPG4の構文へ変換できます。
ただし、このコマンドで得られるのはあくまで「RPG4の固定形式」のソースです。フリーフォーマットへの変換までは自動で行われないため、桁位置の制約自体はまだ残った状態になります。可読性や保守性まで向上させるには、フリーフォーマット化も検討する必要があります。
OSコマンドによる変換手順の概要
OSコマンドによる変換手順の概要として、コンバージョンには大きく分けて2つの段階があります。多くの企業が最初の段階だけで満足してしまい、結果として「RPG4形式ではあるが、読みやすさは変わっていない」という状態にとどまっているケースも見受けられます。移行の目的が保守性向上や人材採用にあるのであれば、2段階目まで見据えて計画することが重要です。
| 段階 | 固定形式(RPG3など) | フリーフォーマット(RPG4) |
|---|---|---|
| 第1段階 | CVTRPGSRCコマンドを用いた機械的な変換 | RPG4(固定形式)のソースコード |
| 第2段階 | 固定形式からフリーフォーマットへの書き換え | RPG4(フリーフォーマット)のソースコード |
第1段階では、既存の資産をコンパイル可能な状態へ移行できます。第2段階では、可読性の高いモダンなコードへと刷新できます。独立行政法人情報処理推進機構(IPA)が指摘するレガシーシステム刷新の重要性を考慮すると、第2段階まで完了させることがシステムの長寿命化に直結します。
コンバージョン時に注意すべきポイントとは?
コンバージョン時に注意すべきポイントとは、単純な構文変換だけでは対応しきれない箇所が発生することです。たとえば、独自に組み込まれた古い命令や、他システムとの連携部分などは、変換後に個別の確認が必要になるケースがあります。エラーが発生した場合は、原因を特定して手動で修正できます。
コンバージョンの具体的な手順や、固有の注意点は、システムの構成によって異なります。着手前には、社内の技術担当者やIBM i導入を支援するパートナー企業に、現状のソース構成を踏まえた確認を行うことをおすすめします。事前の棚卸しを徹底することで、移行時のトラブルを未然に防ぐことができます。
フリーフォーマットRPGへのモダナイゼーションを支援するソリューション

RPG3(固定形式)からRPG4(フリーフォーマット)への移行は、OSの標準コマンドだけでは完全な自由形式への変換が難しいのが実情です。そのため、専用の変換ツールを導入することで、安全かつ効率的にモダナイゼーションを推進できます。
独立行政法人情報処理推進機構(IPA)が公開しているDXレポートからも読み取れるように、レガシーシステムの刷新は企業の競争力維持において急務となっています。ツールを活用した自動変換は、こうした課題の解決に向けた有効な選択肢となるのが理由です。
変換ツールを活用した効率的なコード変換
手作業での書き換えは膨大な時間とコストがかかるだけでなく、人的ミスの原因にもなります。三和コムテック株式会社が提供する「ARCAD Transformer」などの専用ソリューションを活用することで、既存のロジックを維持することを目的として、自動変換できます。
ARCAD Transformer の主な機能
このツールを利用することで、固定形式のコードを高い精度で自由形式に変換できます。さらに、不要なコードの整理や構造化も同時に行えるため、変換後のプログラムの可読性を大幅に向上できます。また、一意の識別子を付与した厳密なバージョン管理なども連携して実現できます。
ソリューション導入で実現できる効果
専用のソリューションを導入することで、具体的にさまざまな効果を期待できます。それぞれの項目について、導入前後の違いをわかりやすく整理しています。
| 項目 | 導入前の課題(RPG3環境) | 導入後の効果(フリーフォーマット化) |
|---|---|---|
| 保守性 | 桁位置の制約があり、処理の流れを視覚的に把握しにくい状態。 | インデントを活用した記述が可能になり、コードの可読性を大幅に向上できる。 |
| 人材育成 | 独特の記述ルールを覚える必要があり、若手エンジニアの学習ハードルが高い傾向にある。 | 他のモダンな言語と似た構文で記述できるため、スムーズな技術習得を促進できる。 |
| 移行コスト | 手作業での書き換えは膨大な工数とテスト期間が必要になる。 | 変換ツールによる自動化で、工数を削減しつつ品質を均一に保つことができる。 |
このように、専用のソリューションを活用することで、単なるコードの変換にとどまらず、将来を見据えたシステム開発の基盤を構築できます。自社の環境に合わせた適切なツールを選定し、計画的にモダナイゼーションを進めることをおすすめします。
※「IBM i」は、日本アイ・ビー・エム株式会社の商標または登録商標です。
※「ARCAD Transformer」は、ARCAD Software社の製品であり、日本国内では三和コムテック株式会社などが提供しています。
よくある質問(FAQ)
RPG3とRPG4はどちらを学ぶべきですか?
これから新しくIBM iの技術を学ぶのであれば、RPG4(ILE RPG)のフリーフォーマットを優先して学ぶことを推奨できます。現代の開発現場では、他言語の経験者でもわかりやすく習得しやすいフリーフォーマットが主流となっているのが理由です。
ただし、現在稼働中のRPG3プログラムの保守が必要な場合は、RPG3の基本的な読み方も並行して押さえておく必要があります。両方を学ぶ場合の学習順序について、以下の表にまとめました。
| 学習の順番 | 対象の形式 | 導入後の効果(フリーフォーマット化) |
|---|---|---|
| 1番目 | RPG4(フリーフォーマット) | プログラミングの基礎となる論理的思考を身につけることができる。他言語と構文が似ているため、学習のつまずきを減らすことが可能。 |
| 2番目 | RPG3(固定形式) | 既存システムの保守に対応できるようになる。フリーフォーマットで基礎を理解した後から固定形式特有のルールを補うことで、効率的に習得できる。 |
RPG3からRPG4への移行は難しいですか?
構文の変換自体はOSの標準コマンドで対応できるため、着手のハードルは決して高くありません。しかし、フリーフォーマットへの完全な書き換えや、長年の改修で複雑化した処理の整理まで行う場合は、相応の工数と専門的な知識が必要になります。
プログラムの本数が多い企業の場合、優先度の高いプログラムから段階的に移行を進めることが成功の鍵となります。すべてのプログラムを一度に移行しようとすると、通常の保守業務との両立が難しくなるため、外部の専門的な支援を受けるといった進め方の検討も有効な選択肢です。
フリーフォーマットRPGとILE RPGは同じものですか?
厳密には少し異なります。ILE RPG(RPG4)は言語の世代や仕組みそのものを指す言葉であり、その中に複数の記述スタイルが存在します。フリーフォーマットは、ILE RPGが備える書き方の1つだとイメージするとわかりやすいでしょう。
| 用語 | 概要と位置づけ |
|---|---|
| ILE RPG(RPG4) | IBM i上で稼働する新しい世代のRPG言語の総称。構造化プログラミングやモジュール化に対応。 |
| 固定形式 | ILE RPGの中で、従来のRPG3と同様に決められた桁位置に記述するスタイル。 |
| フリーフォーマット(自由形式) | ILE RPGの中で、桁位置の制約を受けずに自由な位置からコードを記述できるスタイル。 |
コンバージョンにかかる期間の目安は?
コンバージョンにかかる期間は、プログラムの本数や複雑さ、他システムとの連携の有無によって大きく変わるため、一概にお答えするのは難しいのが実情です。数百本のプログラムであれば数ヶ月で完了するケースもあれば、数千本規模の複雑なシステムでは年単位のプロジェクトになることもあります。
正確な期間を把握するためには、まず対象となるソースコードの規模を棚卸しし、現状の資産を可視化することが不可欠です。そのうえで、IBM iの専門知識を持つパートナー企業から客観的な見積もりを取得し、無理のない移行計画を立てることをおすすめします。
まとめ
本記事では、IBM i環境におけるRPG3とRPG4の違いや、移行のメリットについて解説しました。
RPG3の固定形式からRPG4(ILE RPG)へ進化することで、変数名の拡張やプロシージャの利用が可能となります。特にフリーフォーマットRPGの採用は、他言語に慣れた若手エンジニアでも習得しやすいため、人材採用や育成のハードルを下げるという明確な結論に至ります。
システムのモダナイゼーションに向けて、OSコマンドや支援ソリューションを活用し、将来を見据えたRPG4へのコンバージョンをぜひ検討してみてください。
DXやRPA、IBMi、セキュリティなど多彩な領域でソフトウェア開発・導入支援・コンサルティングを行い、
技術と発想の力で企業の課題解決と新たな価値創造を支援しています。
ブログでは、現場で培った知見をもとに、ビジネスを前進させる最新ソリューションやテクノロジー情報を発信します。
- トピックス:
- IBM i
- 関連トピックス:
- 開発・モダナイゼーション







