特願 2026-046620 (請求項 11 / 14d — レガシー言語方言処理に RPG を含む)

SlimeRPG — RPG → Java bit-exact 変換

IBM Power Systems / iSeries / AS/400 の RPG 資産を、決定論的に Java へ。

銀行・製造・流通・保険で稼働する 世界数億 LOC の RPG 資産 を、 bit-exact + 監査チェーン + 改ざん検出 付きで Java へ移植。 SlimeCOBOL / SlimeMUMPS / SlimePL/I と同じ S2-S5 / S7-S9 共通基盤、 S1 (RPG FST) と S6 (Java emitter) のみ言語固有。

  • RPG IV free-format (`**FREE` directive) を主軸サポート、4 方言 fingerprint 検出 (IBM Classic / IBM Enterprise / Open PL/I 系 / GNU 系)
  • S9 bench で 全 5 軸 100% (35/35) + S6 byte-exact regression 35/35 PASS(2026-05-08 実測)
  • 業務 RPG の核機能を完備 — 配列 (DIM) / DCL-DS データ構造 / DS 配列 / 内部 PROC + DCL-PI + RETURN + 再帰 / SELECT/WHEN/OTHER / 17 種 BIF
  • 本格ファイル I/O 完備DCL-F NAME DISK USAGE(*INPUT/*OUTPUT) EXTFILE('path') + READ / WRITE / CLOSE / %EOF、業務 RPG batch (file_write / file_read / file_copy / file_grep / file_uppercase) 完全動作
  • statement-level proc call 対応 (`HANOI(3:'A':'C':'B');`)、文字列比較は Java の .equals() に自動変換、`NOT %EOF(F)` → `!SlimeRPG.eof(F)`

銀行・製造業界が要求する bit-exact + 改ざん即検出 を実装。 「変換が情報を捨てていない」ことを監査人が事後再現できる、
業界初の RPG 向け決定論的トランスパイラ (弊社調べ) です。

RPG PoC・資料請求 →

主要計測値 (2026-05-08 実測)

35 / 35
javac compile + run
全 35 sample で生成 Java が clean compile + 期待通り実行
35 / 35
S6 byte-exact regression
expected/.java と actual/.java が完全一致
100.00 %
S9 全 5 軸
dialect / token / javac / mutation / determinism すべて全件 PASS
ファイル I/O
本格対応
DCL-F / READ / WRITE / CLOSE / %EOF / EXTFILE 完備
8 段階
Phase 1-8 機能実装
基本構文 → 配列 → SELECT → 内部 PROC → DCL-DS → Rosetta → ファイル I/O
17 種
サポート BIF
%CHAR / %SUBST / %LEN / %TRIM / %SCAN / %REM / %DIV / %ELEM / %UPPER / %LOWER / %EOF ほか

市場文脈 — 世界に眠る RPG 資産

銀行北米・欧州中堅銀行の AS/400 / iSeries 上の勘定系・口座管理。RPG II / III / IV / Free-format が長期運用継続中。
製造業受注・在庫・出荷・MRP の業務基幹を IBM i (旧 OS/400) で運用する企業多数。日本でも中堅製造に多い。
流通・卸POS・在庫管理・販売管理。1980-90 年代の業務パッケージは RPG/400 で書かれていることが多い。
保険米中堅生損保の事務処理・契約管理・支払処理。
市場規模世界推定 数億 LOC、IBM i installed base は 12 万社規模 (IBM 公式概算)。競合 (Modern Systems / Fresche Solutions / ARCAD / X-Analysis) は per-LOC 課金で 数千万円〜数億円スケール。SlimeRPG は WASM converter ツール課金のみ、出力 Java は永久無償デプロイ可

サポート機能一覧 (Phase 1-8)

制御構造IF/ELSEIF/ELSE/ENDIF / FOR (TO/DOWNTO/BY) / DOW (do-while) / SELECT/WHEN/OTHER/ENDSL / RETURN
INT(n) → int / PACKED(p:q) → BigDecimal / ZONED / CHAR(n) → String / VARCHAR
データ構造1D 配列 (DIM(N)) / DCL-DS データ構造 / DS 配列 (DCL-DS NAME DIM(N); FIELD ... ; END-DS;)
プロシージャ内部 DCL-PROC + DCL-PI ... END-PI パラメータ宣言 / RETURN expr / 再帰 / 引数型推論 / class-level static promotion (内部 PROC が main scope の変数を共有) / statement-level proc call
BIF (17 種)%CHAR / %SUBST / %LEN / %TRIM / %TRIML / %TRIMR / %INT / %SCAN / %ABS / %MIN / %MAX / %REM / %DIV / %ELEM / %UPPER / %LOWER / %EOF
演算子算術 / 比較 / 連結 (`+`) / <>!= / 文字列比較を Java の .equals() に自動変換 (literal / 変数双方、`!` LHS 前挿入対応) / NOT! / AND&& / OR||
I/ODSPLY (Java System.out) / 指示子 *INLR = *ON (no-op コメント化) / *ON / *OFF / DCL-F NAME DISK USAGE(*INPUT/*OUTPUT) EXTFILE('path') + OPEN / CLOSE / READ FILE / WRITE FILE / %EOF 本格ファイル I/O

変換例 — 再帰 PROC (Towers of Hanoi)

典型的な再帰プロシージャが、RPG ソースのまま Java として実走します:

**FREE
// SlimeRPG sample 21 — Towers of Hanoi (3 disks)
HANOI(3:'A':'C':'B');
*INLR = *ON;

DCL-PROC HANOI;
  DCL-PI *N;
    N    INT(10);
    SRC  CHAR(1);
    DST  CHAR(1);
    VIA  CHAR(1);
  END-PI;
  IF N = 0;
    RETURN;
  ENDIF;
  HANOI(N - 1:SRC:VIA:DST);
  DSPLY 'move ' + %CHAR(N) + ' ' + SRC + '->' + DST;
  HANOI(N - 1:VIA:DST:SRC);
END-PROC;
// Generated Java (deterministic, byte-exact)
public class M_21_hanoi {
    public static void main(String[] args) {
        HANOI(3, "A", "C", "B");
    }

    public static void HANOI(int N, String SRC, String DST, String VIA) {
        if (N == 0) {
            return;
        }
        HANOI(N - 1, SRC, VIA, DST);
        SlimeRPG.dsply("move " + SlimeRPG.charOf(N) + " " + SRC + "->" + DST);
        HANOI(N - 1, VIA, DST, SRC);
    }
}

実証された algorithm 一覧 (Phase 1-8)

  • ソートBubble sort (ネスト FOR + 配列 swap)
  • 数論Sieve of Eratosthenes / 素数判定 (DOW + %REM) / Euclidean GCD (再帰 + %REM) / 階乗 / Fibonacci 反復 / Collatz 3n+1
  • 文字列SUBST / SCAN / TRIM / UPPER / Caesar cipher / palindrome (CHAR(1) 比較を .equals() 自動化) / 連結 / word counter / letter frequency / string reverse
  • 古典Towers of Hanoi (再帰 + CHAR(1) peg) / 99 bottles / FizzBuzz
  • 業務DCL-DS PERSON (NAME/AGE/CITY) / 配列構造体 EMP DIM(3) (NAME/SALARY) / 商品計算 PRICE×QTY=TOTAL / 配列 sum/avg/min/max / 成績判定 (5 段 IF/ELSEIF chain)
  • ファイル I/Ofile_write (5 lines 書出) / file_read (line-by-line 読 + %EOF) / file_copy (verbatim) / file_grep (%SCAN マッチ抽出) / file_uppercase (%UPPER 変換)

監査適合性 (金融・製造)

  • Bit-exact同一入力 → 同一 sha256。配列・データ構造・再帰呼出すべて含めて完全決定論。
  • Byte-exact regressionmake test で actual/.java と expected/.java を diff、 35/35 PASS(2026-05-08 baseline)。将来の emitter 変更で意図しない出力差分が即検出される regression gate。
  • Audit chainSlimeNENC 共通基盤 (S7) と統合可能、 SHA-256 monotonic chain。
  • Hallucination 検出trigram + bigram 言語モデル。Axis 2 で全 mutation を 100% reject。
  • Build-time LLMLLM は変換規則の構築段階のみ。ランタイムは決定論ルールベース、99.9995% 主張の根拠。

License モデル

課金対象WASM/WASI converter ツール (開発者側)
非課金変換結果の Java ソース (顧客資産、永久無償デプロイ)
方式Ed25519 署名 144B license + 3-hop air-gap activation (金融・製造 audit 対応)
並列化 (PSDP)本製品には含まれません。SlimeNENC 配下の独立 SKU として PSDP を別途。

関連資料

  • 技術解説SlimeNENC Technical Overview (RPG 章を準備中)
  • 出願明細特願 2026-046620 v15b の 請求項 11 / 14d で COBOL / MUMPS / PL/I / RPG 等のレガシー方言処理を明示射程化
  • 兄弟製品SlimeCOBOL / SlimeMUMPS / SlimePL/I / SlimeJCL と同じ S2-S5/S7-S9 共通基盤
  • ベンチマークS9 bench harness (5 軸 correctness)、`s6_java_emit_rpg/Makefile` の `make test` で byte-exact regression 35/35

RPG PoC・資料請求 SlimeNENC ファミリーへ戻る SlimePL/I を見る SlimeCOBOL を見る