IBM iの世界において、生成AIの活用が「本番前夜」を迎えている。
その中で、とりわけ注目に値するのが、日本IBMが独自に進める
日本のRPGユーザーとCOBOLユーザーのための
「IBM iコード・アシスタント」である。同プロジェクトの中核メンバーである
日本IBMの茂木映典、井上忠宣、肥沼沙織の3氏に
IBM iコード・アシスタントの機能と、プロジェクトの進捗状況、
今後の方向性について解説してもらった。
IBM iコード・アシスタントの
Code to TextとText to Code
IBM iコード・アシスタントは、IBMの製品としてではなく、日本IBMによるProof of Concept(PoC:概念検証)活動の一環として、Webアプリケーション形式でPoC参加ユーザーに提供されている。今後の提供計画については、のちほど詳述する。
このプロジェクトで提供する機能は、大きく分けて以下の2つの領域に分類される。
(1)固定フォームRPGコードおよびCOBOLコードの説明機能(Code to Text)
・入力されたコード全体の意味を、自然言語を用いてわかりやすく説明する。
・各ルーチンの処理内容の概要を要約し、その機能的役割を明確に説明する。
(2)固定フォームRPGコードおよびCOBOLコードの生成機能(Text to Code)
・自然言語で記述された要求や説明文から、対応するコードを自動的に生成する。
現在(2025年8月時点)のIBM iコード・アシスタントのWebアプリケーションは、図表3のように直感的に理解可能な画面で構成されている。

まず、画面上部に位置する選択肢から、対象となるプログラム言語として「RPGⅢ」「RPG IV」「ILE COBOL」「ILE CL」のいずれかを選択する。
次に、既存のコードを入力し、その詳細な説明文を生成する「Code-to-Text コード説明」モードか、あるいは自然言語で記述された要求に基づきコードを生成する「Text-to-Code コード生成」モードかのいずれかを選択する。
その後、それぞれのモードに対応する入力欄に、Code-to-Textモードの場合は説明を希望するコードを、Text-to-Codeモードの場合は生成したいコードの内容を自然言語で詳細に入力する。これらの準備が整った後、画面左上に配置された「回答を開始」ボタンを押下すると、選択された機能モードに応じた出力処理が開始される。
図表4は、コード説明モードでの動作例を示している。左側の入力欄にRPG Ⅲコードをコピー&ペーストし、「回答を開始」ボタンを押下すると、右側の出力欄にそのコードに関する詳細な説明文が生成・表示される。

この説明文は、各行の処理内容を詳細に解説するだけでなく、メインルーチンの場合はそのプログラム全体の入力・出力・処理内容の概要が、サブルーチンの場合は、図表5に示されているように、その処理内容の概要が冒頭部分にわかりやすく要約されて出力される。

コード説明文が出力された後、図表6の左側画面の右上にある三角形ボタン(上部「コード説明表示オプション」の右にある赤丸枠)を押してアコーディオンGUIを展開することで、「コード説明表示オプション」にアクセスし、説明文の表示内容を詳細にカスタマイズすることが可能となる。

具体的には、オリジナルの説明文中に含まれる「(コメント行)」で始まるコメント行の表示・非表示を切り替えることができる。図表6の右側画面はその様子を示したもので、「コード説明表示オプションの適用」ボタンの押下によって、オリジナルのコード説明からコメント文が非表示に切り替わっている。
さらに、コード説明表示オプションの中で、「サブルーチンへのリンク」を「有り」とすることでサブルーチンへのリンクを作成し、「サブルーチン○○を実行します」と記述された行から、呼び出されたサブルーチンのコードブロックへジャンプすることも可能である。
図表7では、「コード説明表示オプションの適用」ボタンを押下することによってサブルーチンへのリンクが作成され、「サブルーチンSBMAINを実行します」(赤い矢印)の青字リンクSBMAINをクリックすることで、サブルーチンSBMAINのコードブロックの説明箇所に移動していることが確認できる。

図表8の左側は、画面右上の三角形ボタン(赤丸枠)を押してアコーディオンGUIを展開すると、リンクを作成したい変数名が入力可能となり、「リンク作成」ボタンの押下によって、入力した変数名へのリンクが作成されることを示している。
また図表8の右側では、説明文の冒頭部分において、変数が使用されているコード中の箇所のすべてが一覧表示され、それぞれの使用箇所へジャンプできることが示されている。これによりコードの解析効率が大幅に向上する。

図表9は、コード生成モードでの具体的な動作例である。左側の入力欄に「得意先マスターを読み込み、得意先マスター一覧表を表示するサンプルを作ってください」といった自然言語の要求を入力し、「回答を開始」ボタンを押下すると、右側の出力欄にその要求に対応するRPGコードが生成・出力される。
この機能では、現時点ではそのままコンパイル可能なレベルの完璧なコードの出力は主目標にしていない。それよりも開発者のプログラミング作業を強力にサポートする具体的なヒントやコードスニペット(多用するコードセットのタイピングを支援する機能)の提供を狙いとしている。

さらに、図表10に示すように、図表4で出力されたコード説明文を基にしてコード生成を行う試みも行われている。将来的には、生成されたコードの説明文に対してユーザーが直接仕様を変更し、その変更を反映したコードを再生成するといった、差分開発をより円滑に行えるツールへと発展させていく計画である。

Code to Textの実用性を
3社がPoCで検証中
IBM iコード・アシスタント・プロジェクトでは現在、下記の3社がPoCに参加中で、それぞれの業務環境におけるツールの適用可能性について検証作業を進めている。
・A社およびB社:RPG Ⅲおよび固定フォーマット型ILE RPG(RPG Ⅳ)資産を対象としたコード説明機能の検証
・C社:ILE COBOL資産を対象としたコード解析および説明機能の検証
各参加企業のアウトプット要件は多岐にわたるため、日本IBMの開発チームではプロンプト・エンジニアリング技術を駆使し、各社の具体的なニーズに適合する説明文を生成している。
RPG関連の検証に携わっているA社・B社は、既存の固定フォーム資産のモダナイゼーションと、将来を見据えた技術継承を主要な参加目的として挙げている。
COBOL関連の検証を実施しているC社は、IBM i環境で稼働するILE COBOL資産(他社製メインフレームからコンバージョンされたアプリケーション)を、より現代的なマイクロサービス・アーキテクチャへと発展させることを戦略的な目標として参加している。
2025年8月現在、参加各社はコード説明機能(Code to Text)の検証フェーズをほぼ完了する段階に到達している。今後は、コード生成機能(Text to Code)の実装フェーズへと移行する予定で、プロジェクトチームでは、各社の具体的なニーズを綿密にヒアリングし、実装レベルについて慎重かつ継続的な検討を進めていく方針である。
今後、図表11のロードマップに基づき、IBM iコード・アシスタント・サービスへの展開が計画されている。ただし、本計画は2025年8月現在の内容であり、将来的に変更される可能性もある。[Part 3へ続く]


著者
茂木 映典氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
Power テクニカル・セールス

著者
井上 忠宣氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
watsonx事業部
データプラットフォーム・サブジェクトマターエキスパート

著者
肥沼 沙織氏
日本アイ・ビー・エム株式会社
テクノロジー事業本部
Power テクニカル・セールス