JP application 2026-046620 (claims 11 / 14d — legacy dialect coverage includes RPG)

SlimeRPG — RPG → Java bit-exact transpiler

Deterministic modernization of IBM Power Systems / iSeries / AS/400 RPG assets to Java.

Hundreds of millions of lines of RPG run worldwide on IBM Power Systems, iSeries, and AS/400 in banks, manufacturers, distributors, and insurers. SlimeRPG converts them to Java with bit-exact correctness, audit chains, and tamper detection — sharing S2-S5 / S7-S9 with SlimeCOBOL, SlimeMUMPS, and SlimePL/I, with only S1 (RPG FST) and S6 (Java emitter) being RPG-specific.

  • RPG IV free-format (`**FREE` directive) is the primary target; 4-dialect fingerprint detection (IBM Classic / IBM Enterprise / Open PL/I-style / GNU-style)
  • S9 bench: all 5 axes 100% (35/35) + S6 byte-exact regression 35/35 PASS(measured 2026-05-08)
  • Production RPG features — arrays (DIM) / DCL-DS data structures / array-of-DS / internal PROC + DCL-PI + RETURN + recursion / SELECT/WHEN/OTHER / 17 BIFs
  • Full file I/ODCL-F NAME DISK USAGE(*INPUT/*OUTPUT) EXTFILE('path') + READ / WRITE / CLOSE / %EOF; production RPG batch (file_write / file_read / file_copy / file_grep / file_uppercase) all working
  • Statement-level proc calls (`HANOI(3:'A':'C':'B');`); string equality auto-rewritten to Java .equals(); `NOT %EOF(F)` → `!SlimeRPG.eof(F)`

Implements the bit-exact + instant tamper detection required by financial and manufacturing audit. Auditors can re-verify "no information lost in conversion" after the fact — the world's first deterministic transpiler dedicated to RPG (per our research).

RPG PoC / Materials →

Headline metrics (measured 2026-05-08)

35 / 35
javac compile + run
all 35 samples emit Java that compiles clean and runs as expected
35 / 35
S6 byte-exact regression
actual/.java and expected/.java match exactly
100.00 %
S9 all 5 axes
dialect / token / javac / mutation / determinism — all PASS
File I/O
full support
DCL-F / READ / WRITE / CLOSE / %EOF / EXTFILE complete
8 phases
Phase 1-8 implemented
core syntax → arrays → SELECT → internal PROC → DCL-DS → Rosetta → file I/O
17 BIFs
supported
%CHAR / %SUBST / %LEN / %TRIM / %SCAN / %REM / %DIV / %ELEM / %UPPER / %LOWER / %EOF and more

Market context — the world's RPG legacy

BankingMid-market US / European banks: account systems on AS/400 / iSeries. RPG II / III / IV / Free-format under continuous maintenance for decades.
ManufacturingOrder / inventory / shipping / MRP backbones on IBM i (formerly OS/400). Common in mid-tier manufacturers worldwide, including Japan.
DistributionPOS, inventory, sales management. 1980s-90s ERP packages were typically written in RPG/400.
InsuranceMid-tier US life / P&C insurers: claims, contract management, payments.
Market scaleEstimated hundreds of millions of LOC worldwide; the IBM i installed base is roughly 120,000 customers (per IBM's own figures). Competitors (Modern Systems / Fresche Solutions / ARCAD / X-Analysis) charge per-LOC at multi-million-dollar scale. SlimeRPG charges only the WASM converter tool — the generated Java is perpetually free to deploy.

Supported features (Phase 1-8)

Control flowIF/ELSEIF/ELSE/ENDIF / FOR (TO/DOWNTO/BY) / DOW (do-while) / SELECT/WHEN/OTHER/ENDSL / RETURN
TypesINT(n) → int / PACKED(p:q) → BigDecimal / ZONED / CHAR(n) → String / VARCHAR
Data structures1D arrays (DIM(N)) / DCL-DS data structures / array-of-DS (DCL-DS NAME DIM(N); FIELD ... ; END-DS;)
Proceduresinternal DCL-PROC + DCL-PI ... END-PI parameter declarations / RETURN expr / recursion / parameter type inference / class-level static promotion (so internal PROCs share main-scope state) / statement-level proc calls
BIFs (17)%CHAR / %SUBST / %LEN / %TRIM / %TRIML / %TRIMR / %INT / %SCAN / %ABS / %MIN / %MAX / %REM / %DIV / %ELEM / %UPPER / %LOWER / %EOF
Operatorsarithmetic / comparison / concat (`+`) / <>!= / string equality auto-rewritten to Java .equals() (literals and variables, with `!` prefix on the LHS for `<>`) / NOT! / AND&& / OR||
I/ODSPLY (Java System.out) / indicator *INLR = *ON (no-op comment) / *ON / *OFF / DCL-F NAME DISK USAGE(*INPUT/*OUTPUT) EXTFILE('path') + OPEN / CLOSE / READ FILE / WRITE FILE / %EOF full file I/O

Conversion example — recursive PROC (Towers of Hanoi)

A typical recursive procedure compiles and runs unchanged:

**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);
    }
}

Algorithms verified end-to-end (Phase 1-8)

  • SortingBubble sort (nested FOR + array swap)
  • Number theorySieve of Eratosthenes / primality test (DOW + %REM) / Euclidean GCD (recursive + %REM) / factorial / iterative Fibonacci / Collatz 3n+1
  • String processingSUBST / SCAN / TRIM / UPPER / Caesar cipher / palindrome (CHAR(1) compare auto-rewritten to .equals()) / concatenation / word counter / letter frequency / string reverse
  • ClassicsTowers of Hanoi (recursive + CHAR(1) peg) / 99 bottles / FizzBuzz
  • BusinessDCL-DS PERSON (NAME/AGE/CITY) / array-of-struct EMP DIM(3) (NAME/SALARY) / item compute PRICE×QTY=TOTAL / array sum/avg/min/max / grade book (5-tier IF/ELSEIF chain)
  • File I/Ofile_write (5 lines out) / file_read (line-by-line + %EOF) / file_copy (verbatim) / file_grep (%SCAN match filter) / file_uppercase (%UPPER conversion)

Audit fitness (financial / manufacturing)

  • Bit-exactSame input → same sha256. Includes arrays, data structures, recursion — fully deterministic.
  • Byte-exact regressionmake test diffs actual/.java against expected/.java — 35/35 PASS(2026-05-08 baseline). Future emitter changes that introduce unintended output drift are detected immediately.
  • Audit chainPluggable into the SlimeNENC shared S7 stage (SHA-256 monotonic chain).
  • Hallucination detectionTrigram + bigram language model. Axis 2 rejects 100% of mutations.
  • Build-time LLMLLM is used only at rule-construction time. Runtime is deterministic rules — basis of the 99.9995% claim.

License model

ChargedWASM/WASI converter tool (developer side)
FreeGenerated Java source (customer asset, perpetual deploy)
MethodEd25519-signed 144B license + 3-hop air-gap activation (financial / manufacturing audit-ready)
Parallelization (PSDP)Not bundled with this product. See PSDP as a separate SKU under SlimeNENC.

Resources

  • Tech overviewSlimeNENC Technical Overview (RPG chapter in preparation)
  • Patent applicationJP 2026-046620 v15b — claims 11 / 14d cover legacy dialect processing for COBOL / MUMPS / PL/I / RPG explicitly
  • Sibling productsSlimeCOBOL / SlimeMUMPS / SlimePL/I / SlimeJCL share the same S2-S5 / S7-S9 backbone
  • BenchmarksS9 bench harness (5-axis correctness); make test in s6_java_emit_rpg/ gives byte-exact regression 35/35

RPG PoC / Materials Back to SlimeNENC family SlimePL/I SlimeCOBOL